/ / URL Riscrivi su .htaccess - .htaccess, riscrivi

URL Riscrivi su .htaccess - .htaccess, riscrivi

Sto cercando di fare una regola di riscrittura che capirà

http://example.com/test/1234

come

http://example.com/test.php?t=1234

Questo è quello che ho adesso e non funziona:

RewriteEngine on
RewriteRule ^test?t=([^/.]+)/?$ http://mywebsite.com/test/$1 [L]

Qualcuno può darmi una mano?

risposte:

2 per risposta № 1

Il tuo rewriteRule è indietro nel tuo modo di esseresi suppone che corrisponda a sinistra ciò che si desidera rendere l'url pulito e riscrivere a destra dove si trova il file sul server. Ma anche se non fosse indietro, dovresti sfuggire al carattere del punto interrogativo nel RegExp. Ma poiché è indietro, dovresti usare qualcosa di più vicino a:

RewriteEngine on
RewriteRule ^test/(.*) test.php?t=$1 [L]

1 per risposta № 2

Provare :

RewriteEngine On
RewriteCond %{THE_REQUEST} /test.php?t=([^&s]+) [NC]
RewriteRule ^test.php$ /test/%1? [NC,R,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^test/([^/]+)/?$ /test.php?t=$1 [QSA,L,NC]

La stringa di query non fa parte della corrispondenza nella direttiva della regola di riscrittura, utilizza% {QUERY_STRING} o% {THE_REQUEST} variabili per corrispondere alla stringa della query.