Question

J'ai un dossier nommé test situé à l'adresse www.mydomain.com/abc/files/test. Je dois modifier les URL à partir de www.mondomaine.com/abc/files/test/test.php?id=15&key=some-text123

vers www.mydomain.com/abc/files/test/15/some-text123 cela est similaire aux URL SO.

J'ai essayé de suivre le fichier .htaccess avec le code suivant

RewriteEngine on 
Options +FollowSymlinks
RewriteBase / 
RewriteRule ^test/([0-9]+)/([A-Za-z0-9-]+)?$ test/test.php?id=$1&key=$2 [R]

Cela me redirige vers www.mondomaine.com/test/test.php?id=15&key=some-text-123 mais cela n'a pas fonctionné car j'ai copié le format quelque part. Je ne suis pas sûr que ^ devrait inclure la partie www également ou suppose-t-il simplement / en tant que root?

Le " id " une partie est importante pour moi. Je considérerai également les suivants comme des URL valides.

www.mydomain.com/abc/files/test/15 (without /some-text123")
www.mydomain.com/abc/files/test/15/ (without /some-text123 but having / )

Pouvez-vous m'aider à écrire la règle correcte?

Comment puis-je faire en sorte que je n'ai pas à coder en dur & abc / files / " ?

Cela ne devrait affecter aucune des autres URL de mon site (que le dossier "test".)

De même, l'URL doit rester identique ( / files / test / 15 etc ) au lieu de passer à "? id = 15 & amp; key = some-text123 "

Merci beaucoup.

Était-ce utile?

La solution

Le R indicateur force une redirection externe. Il suffit donc de le laisser de côté et la demande sera redirigée en interne:

RewriteRule ^test/([0-9]+)/([A-Za-z0-9-]+)?$ test/test.php?id=$1&key=$2
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top