Ceci est le contenu de mon fichier .htaccess:RewriteRule ne fonctionne pas
RewriteEngine on
RewriteRule ^upload$ upload.php
RewriteRule ^/(\d+)/?.*$ /view.php?id=$1 [L]
La première règle fonctionne avec succès. Lorsque je navigue vers http://localhost/upload
, il affiche la page upload.php.
Toutefois, la deuxième règle ne s'applique pas. Lorsque je navigue sur: http://localhost/1234/some-string
, j'obtiens une erreur 404. Il est destiné à montrer cette page: http://localhost/view.php?id=1234
.
J'espère que vous pouvez voir ce que j'essaie de faire avec la règle, je veux que la dernière chaîne à la fin de l'URL soit complètement ignorée, et prenez le 1234
comme paramètre pour view.php. Est-ce que quelqu'un peut savoir pourquoi cela ne fonctionne pas?
J'ai essayé tout ce que je peux penser, mais sans succès. Merci!
Edit: désolé, je me suis trompé. Tu as raison. Cela fonctionne si je le fais à la place: 'RewriteRule^(\ d +) /?.*$ /view.php?id=$1 [L]'. Je ne sais pas exactement ce que vous vouliez dire par le '-'. – Josh
c'est parce qu'il cherche d'abord les répertoires, je ne sais pas comment l'arrêter. La première fonctionne parce que l'URL ne se termine pas par un '/' (cela ne fonctionnerait pas dans ce cas, car la règle ne spécifie pas cette éventualité. – fbstj