Благодарим за добавление кода на ваш вопрос. Еще раз посмотрим, насколько это важно:
Ваша проблема заключается в том, что 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]
Другое дело, что на самом деле не получить ясно, если вы хотите, чтобы все адреса ниже 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 hosts DOCUMENT_ROOT
в локальной файловой системе.
И общий совет: вы должны всегда предпочитают размещать такие правила в конфигурации HTTP-сервера хоста вместо использования .htaccess
файлов стилей. Эти файлы, как известно, подвержены ошибкам, трудно отлаживаются, и они действительно замедляют работу сервера. Они предоставляются только в качестве последнего варианта для ситуаций, когда у вас нет контроля над конфигурацией хоста (читай: действительно дешевые хостинг-провайдеры) или если у вас есть приложение, которое опирается на составление собственных правил перезаписи (что является очевидным кошмаром безопасности).
Вам нужно будет опубликовать свой код встроенного в вопрос. Без этого мы не сможем вам помочь. Итак, какие правила вы пытались «не повезло»? – arkascha
Я добавил код, который я пытался использовать. – yaniv14