@rinaz22

Меняю путь через htaccess, но PHP все равно знает оригинальный путь. Почему?

Всем привет! Чтобы сократить url, сокращаю его с помощью htaccess:
RewriteRule ^([A-z0-9]{3,20})/archive/$ /pages/$1/files/archive/ [QSA]

Все прекрасно работает, в url ввожу например page1/archive/, а запрос делается на /pages/page1/files/archive/. Но возникла проблека. PHP знает оригинальный путь.
В /pages/page1/files/archive/ есть php файл со следующим кодом:
<?
print_r($GLOBALS);
?>

В $_SERVER и $_ENV есть оригинальный путь(/pages/page1/files/archive/).
Как сделать так, чтобы через PHP нельзя было узнать оригинальный путь, чтобы везде было page1/archive/?
  • Вопрос задан
  • 111 просмотров
Пригласить эксперта
Ответы на вопрос 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Так сделать невозможно.
Запрошенный (короткий) путь вы можете увидеть в $_SERVER['REQUEST_URI'], а фактическое место из которого запустился скрипт $_SERVER['DOCUMENT_ROOT'] $_SERVER['SCRIPT_FILENAME'] $_SERVER['SCRIPT_NAME'] изменить нельзя, так как эти значения определяются в момент запуска.

Хотя можете попробовать один "финт ушами" это указание auto_prepend_file в .htaccess

делаете некий скрипт prepend.php который будет автоматически загружаться при запуске любого скрипта и в нём перезатирайте что хотите.
php_value auto_prepend_file /www/server/prepend.php


p.s. как уже написали ранее - всё это попахивает каким-то извращением и я не знаю ни одного случая когда мне в моих скриптах надо было бы делать что-то подобное.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы