301 перенаправляет, и правильное регулярное выражение, чтобы пойти с ним - PullRequest
1 голос
/ 14 июня 2010

У меня есть несколько URL, которые я хочу перенаправить в одно и то же место, однако это динамические URL.

Структура примерно такая:

http://www.mysite.com/declaration/list?[query_string]

То, что я думаю, было бы идеальным для этой ситуации, это использование некоторого регулярного выражения в моем файле .htaccess для перенаправления всех этих ссылок на домашнюю страницу сайта.

Мне было интересно, может ли кто-нибудь помочь мне с регулярным выражением для этой ситуации. Пока у меня есть это, но это не работает:

RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/declaration/list$ http://www.mysite.com/$ [R=301,L]

Мое регулярное выражение, мягко говоря, слабо, что-то, чего я хочу, и пытаюсь научиться.

Заранее спасибо. Том

1 Ответ

3 голосов
/ 14 июня 2010

Поскольку вы используете mod_rewrite в файле .htaccess, вам необходимо удалить префикс контекстного пути из шаблонов.Поэтому попробуйте это:

RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^declaration/list$ http://www.example.com/ [R=301,L]

И так как .* будет соответствовать любой строке, ваша директива RewriteCond не имеет дополнительного использования:

RewriteRule ^declaration/list$ http://www.example.com/ [R=301,L]

И еслиесли вы не хотите, чтобы запрос автоматически добавлялся к новому URL-адресу, укажите в запросе пустой запрос:

RewriteRule ^declaration/list$ http://www.example.com/? [R=301,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...