У меня есть mod_rewrite, работающий на большей части моего сайта. Сейчас у меня есть поиск, который обычно указывает на
search.php?keyword=KEYWORD
И я пытаюсь переписать это на
search/?keyword=KEYWORD
Просто чтобы сделать его чище. Итак, вот мой mod_rewrite. (Есть и другие правила, которые я просто публикую, которые не работают.)
RewriteRule ^search/?keyword=([^/\.]+)/?$ search.php?search=$1
Когда я набираю запрос в адресной строке так, как мне хотелось бы, я получаю страницу с сообщением, что это «неработающая ссылка» (я предполагаю, что это эквивалент Chrome для ошибки 404). Так что я делаю не так? Я думаю, что проблема в «=» или «?» войдите в правило (первая часть), потому что когда я вынимаю? ключевое слово = часть, это работает. Имеет ли это смысл?
<Ч />
РЕДАКТИРОВАТЬ: Это мой полный код .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]
Все еще появляется страница с ошибкой ...