.htaccess: проверить, имеет ли строка запроса определенное значение или же перенаправить его - PullRequest
4 голосов
/ 15 ноября 2011

Я пытаюсь немного узнать .htaccess и очень беспокоюсь о том, что он может сделать. Я видел фрагмент кода в Интернете, но не могу заставить его работать, он в основном выглядит следующим образом Если строка запроса не имеет определенного значения, вместо этого перенаправьте его на index.php или на какую-либо другую страницу. Как мне это сделать?

Это ищет значение яблок :

www.domain.com/somefile.php?a=apples&b=xyz

Это перенаправит на index.php вместо:

www.domain.com/somefile.php?a=stinkycheese&b=xyz

1 Ответ

16 голосов
/ 16 ноября 2011

Вам необходимо использовать переменную% {QUERY_STRING} внутри RewriteCond. Так, например, если вы не хотите перенаправлять, если в строке запроса есть redirect=no, это будет выглядеть так:

RewriteCond %{QUERY_STRING} !(^|&)redirect=no($|&)
RewriteRule . /index.php [L]

Таким образом, если RewriteCond завершается ошибкой (в строке запроса содержится redirect=no), не применяйте следующее правило, которое переписывает URI запроса в /index.php. Фактическое правило, которое вам нужно, может отличаться, но использование RewriteCond и% {QUERY_STRING} является основной идеей, которую вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...