Вы можете сделать это с помощью mod_rewrite.Вы не указали точную настройку, но если у вас есть конфигурация типа mod_proxy, вы просто хотите убедиться, что перезаписи не влияют на прохождение нормального трафика.В общем смысле в вашей конфигурации Apache вы должны:
- Включить перезапись
- Проверить условие
- Применить правило перезаписи на основе условий
Чтобы привести действительно простой пример, если вы искали ключ в строке запроса и запрещали доступ (403), если его не было, вы бы сделали что-то вроде этого:
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} !somekey
RewriteRule ^.*$ - [F,L]
Это может быть настолько сложным, насколько вы действительно хотите, вы можете связать условия вместе (неявное И или явное или с помощью флага [ИЛИ]), и вы можете обслуживать реальную страницу, а не запрещенное сообщение.
Как всегда, сделайте резервную копию вашей конфигурации перед тем, как возиться с ней, и, возможно, было бы неплохо проверить это с помощью .htaccess (хотя по соображениям производительности лучше перенести его в фактическую конфигурацию для производственных нагрузок).
Документация по переписыванию также является отличным ресурсом:
http://httpd.apache.org/docs/current/mod/mod_rewrite.html
Это действительно хорошая документация.Для некоторых указателей - вы захотите посмотреть флаги ([L] = последний; [P] = обрабатывать как прокси-запрос; [F] = запрещено и т. Д.), И вам понадобится кто-то, обычно знакомый с синтаксисом регулярных выражений