У меня довольно простая потребность: перенаправить любой запрос в один файл.
Поэтому я положил в свой каталог apache root .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^ index.php?q=test [L,QSA]
</IfModule>
Все запросы действительно перенаправлены на индекс . php, но появляется странная вещь: PHP $ _ SERVER ['QUERY_STRING'] содержит q = test & q = test , показывающий, что перенаправление происходит дважды (и REDIRECT_URL не содержит index. php, но переданный URL, приводящий к этому, равен REQUEST_URI.
Как можно Я исправляю это, учитывая, что у меня есть только .htaccess способ настройки Apache?
Тестирование:
- Создайте папку на вашем apache web root (например: redirect /)
- добавить файл .htaccess, содержащий указанный выше код
- , добавить индекс. php сброс файла $ _SERVER, чтобы увидеть результат
- попробовать любой URL (например, : redirect / foo / bar) и вы должны увидеть дамп.
Apache версия: 2.4.33; PHP версия: 7.2.4 (& 5.6.35); WAMP (Wi-Fi n) и Red Hat (Linux).