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 файлы стилей. Эти файлы, как известно, подвержены ошибкам, их трудно отлаживать, и они действительно замедляют работу сервера. Они предоставляются только в качестве последнего варианта для ситуаций, когда у вас нет контроля над конфигурацией хоста (читай: действительно дешевые поставщики услуг хостинга) или если у вас есть приложение, которое полагается на написание своих собственных правил перезаписи (что является очевидным кошмаром безопасности)).

Другие вопросы по тегам