Apache 301 редирект с получением параметров
Я пытаюсь сделать 301 перенаправление с Hightsccess веб-сервера Lightspeed без удачи.
Мне нужно сделать URL для перенаправления URL без каких-либо связанных параметров.
например:
от: http://www.example.com/?cat=123
чтобы: http://www.example.com/some_url
Я пытался:
RewriteRule http://www.example.com/?cat=123 http://www.example.com/some_url/ [R=301,L,NC]
Любая помощь будет оценена.
1 ответ
Спасибо за добавление кода в ваш вопрос. Еще раз мы видим, насколько это важно:
ваша проблема в том, что RewriteRule
работает не с URL, а с путями. Поэтому вам нужно что-то подобное:
RewriteEngine on
RewriteRule ^/?$ /some_url/ [R=301,L,NC,QSD]
Из вашего вопроса не ясно, хотите ли вы игнорировать какие-либо параметры GET или хотите перенаправить только если установлены определенные параметры. Итак, вот вариант, который будет применен только в том случае, если какой-либо параметр фактически установлен в запросе:
RewriteEngine on
RewriteCond %{QUERY_STRING} (?:^|&)cat=123(?:&|$)
RewriteRule ^/?$ /some_url/ [R=301,L,NC,QSD]
Еще одна вещь, которая не совсем понятна, если вы хотите, чтобы все URL ниже http://www.example.com/
(так ниже пути /
) быть переписанным, или только этот точный URL. Если вы хотите сохранить любой потенциальный дальнейший компонент пути запроса и все еще переписать (например, http://www.example.com/foo => http://www.example.com/some_url/foo
), то вам нужно добавить запись в ваше регулярное выражение и повторно использовать захваченные компоненты пути:
RewriteEngine on
RewriteRule ^/?(.*)$ /some_url/$1 [R=301,L,NC,QSD]
Чтобы все это работало, вам нужно иметь интерпретацию .htaccess
файлы стилей, включенные с помощью AllowOverride
команда. Смотрите официальную документацию модуля переписывания для деталей. И вы должны позаботиться о том, чтобы это -htaccess
файл стиля на самом деле читается процессом http-сервера и находится прямо внутри http-хостов DOCUMENT_ROOT
папка в локальной файловой системе.
И общий совет: вы всегда должны предпочитать размещать такие правила в конфигурации хоста http-серверов вместо использования .htaccess
файлы стилей. Эти файлы, как известно, подвержены ошибкам, их трудно отлаживать, и они действительно замедляют работу сервера. Они предоставляются только в качестве последнего варианта для ситуаций, когда у вас нет контроля над конфигурацией хоста (читай: действительно дешевые поставщики услуг хостинга) или если у вас есть приложение, которое полагается на написание своих собственных правил перезаписи (что является очевидным кошмаром безопасности)).