Есть ли способ переписать? Search = to / news / in .htaccess? - PullRequest
1 голос
/ 04 июня 2011

Вероятно, нет .. но ..

У меня есть способ переписать ?search= и заставить его читать /news/ в .htaccess?

Так mydomain.com/?search=frogs будет: mydomain.com/news/frogs

Ответы [ 2 ]

3 голосов
/ 04 июня 2011

Да, вам нужно установить правило перезаписи в .htaccess, которое выполняет HTTP-перенаправление, чтобы браузер запрашивал новый URL-адрес. Я бы порекомендовал код ответа 301 (постоянное перенаправление), если только он не является временным, в этом случае используйте 302.

RewriteEngine on
RewriteCond %{QUERY_STRING} ^search=(.*)$
RewriteRule ^$ /news/%1? [L,R=301]

Должно работать, хотя я не проверял. Вот хорошее краткое изложение некоторых проблем, связанных с перенаправлением URL-адреса со строкой запроса на URL-адрес без такового.

РЕДАКТИРОВАТЬ: после тестирования изменил первый аргумент RewriteRule с ^/$ на ^$. Должен работать сейчас для URL, таких как example.com/?search=foo.

0 голосов
/ 04 июня 2011

Simples ...

RewriteRule ^/news/(.*)$ index.php?search=$1 [NC,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...