J'ai mod_rewrite sur la plupart de mon site. En ce moment j'ai une recherche qui normalement pointer versmod_rewrite avec les requêtes GET
search.php?keyword=KEYWORD
Et je suis en train de réécrire que pour
search/?keyword=KEYWORD
Juste pour faire un peu plus propre. Alors, voici mon mod_rewrite. (Il existe d'autres règles que je suis juste affichant celui qui ne fonctionne pas.)
RewriteRule ^search/?keyword=([^/\.]+)/?$ search.php?search=$1
Lorsque je tape une recherche dans la façon dont la barre d'adresse, je veux que ce soit, je reçois une page me dire son un "lien cassé" (je devine que c'est l'équivalent de Chrome d'une erreur 404). Alors qu'est-ce que je fais mal? Je pense que le problème est le '=' ou le '?' signer dans la règle (la première partie) parce que quand je prends le? keyword = part, ça marche. Cela a-t-il du sens?
EDIT: Ceci est mon code complet .htaccess:
RewriteEngine on
RewriteRule ^$ index.php
RewriteRule ^thoughts$ archives.php
RewriteRule ^thoughts/$ archives.php
RewriteRule ^about$ about.php
RewriteRule ^about/$ about.php
RewriteRule ^search/\?keyword=([^/]+)$ search.php?search=$1
RewriteRule ^tags/([^/]+)$ tags.php?tag=$1
RewriteRule ^thoughts/([^/]+)$ post.php?title=$1 [L]
obtenir encore une page d'erreur ...
Avez-vous besoin d'un antislash avant la barre oblique? La barre oblique a une signification pour certaines bibliothèques regex. – barrycarter
Non, essayé et n'a rien changé. De plus, tous mes autres réécritures avec des barres obliques fonctionnent bien. Merci quand même! – williamg