#php #.htaccess #url-rewriting
#php #.htaccess #url-переписывание
Вопрос:
Вероятно, нет .. но..
Есть ли способ переписать ?search=
и заставить его читать /news/
в .htaccess
?
Так mydomain.com/?search=frogs
было бы: mydomain.com/news/frogs
Ответ №1:
Да, вам нужно установить правило перезаписи в .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
.
Ответ №2:
simples…
RewriteRule ^/news/(.*)$ index.php?search=$1 [NC,L]