Проверить значение GET с помощью htaccess?
Мне нужна помощь с настройкой правила внутри htaccess, которое делает следующее,
Всякий раз, когда запрошенный URL содержит ключевое слово love
затем перенаправьте пользователя на другой URL или покажите страницу 404.
Уточнение немного больше: если кто-то пытается получить доступ к этому URL -> www.domain.com/love
или же www.domain.com/?love
или любой URL, содержащий слово "love", должен быть перенаправлен на страницу 404.
2 ответа
Вам нужно иметь дело с сопоставлением чего-либо в пути и сопоставлением чего-либо в строке запроса отдельно, поскольку Apache не предоставляет переменную, содержащую оба. Первый RewriteRule здесь соответствует "love" в пути, а второе правило, ограниченное RewriteCond, соответствует "love" в строке запроса.
RewriteRule .*love.* - [R=404]
RewriteCond %{QUERY_STRING} .*love.*
RewriteRule .* - [R=404]
Всякий раз, когда запрашиваемый URL содержит ключевое слово "любовь"
Если вы хотите исключить слова, содержащие эти буквы, как вложенное слово. например. "перчатка", "неряшливый", "гвоздика" и т. д. тогда вам нужно включить границы слов в регулярное выражение, например.
\blove\b
.
Вы также можете сделать это с помощью одного правила, проверив
THE_REQUEST
переменная сервера, содержащая как URL-путь, так и строку запроса.
Например:
RewriteEngine On
RewriteCond %{THE_REQUEST} \blove\b
RewriteRule ^ - [R=404]