Определение Адреса Страницы После Rewriterule С Помощью Mod_Proxy

Я столкнулся с проблемой, на коллективное решение которой ушло почти 24 часа.

Вкратце: есть сайт, все страницы/шаблоны которого обрабатываются и обслуживаются через единый index.php, а кроме того, для организации CNC (дружественных URL) используется htaccess с очень немалым списком различных RewriteRules. И всё бы ничего, но для решения одной проблемы нужно было знать, какой адрес запрашивает клиент. То есть по сути PHP-скрипт не знает, что пользователь ввел в адресную строку, так как полученный им запрос уже является htaccess, который вызывает нужный скрипт. В результате оказалось, что реальный URL страницы можно взять только на стороне клиента через javascript. Распечатка всевозможных суперглобальных массивов типа $_SERVER показала, что настоящий адрес не содержится ни в одной из переменных.

Стало понятно, что ответ явно нужно искать только в файле htaccess. Первый вариант был попробовать использовать возможность устанавливать и передавать в скрипты переменные окружения, поэтому в самом начале htaccess было написано что-то вроде этого: SetEnvIf Request_URI "(.

*)" my=$1 SetEnvIf REDIRECT_my (.

+) my=$1 PassEnv мой Действительно, переменная $my начинает быть видна в массиве $_SERVER, но значение остаётся таким же, как и после обработки дальнейшими правилами htaccess. Я предполагаю, что в некоторых случаях это сработает, но в нашем случае видимо был многократный проход по файлу htaccess (для некоторых задач мы также используем mod_proxy).

Потом пришла идея передавать при каждом рерайте URL, с которого происходит рерайт, например RewriteRule ^photo/([0-9]+).

html$ /rubricator/photo.html?%{QUERY_STRING}&id=$1 &url=$0 [П, Л] В результате в любом скрипте нам становится доступна переменная $_SERVER[“url”], которая содержит необходимый дополнительный URL (кроме, конечно, самого домена).

Долгий поиск в Интернете не дал решения, поэтому решил поделиться своим опытом с сообществом.

Теги: #Правила перезаписи #определение URL #htaccess #php #Chulan

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.