Доступ к переписанному URI в скрипте php - PullRequest
2 голосов
/ 22 октября 2010

Итак, у меня есть файл .htaccess, который выполняет перезапись из /testscript1.php/testvar1/testvar2 в /testscript2.php/testvar3/testvar4 (это упрощение, но вы поняли идею).

Теперь, хотя в моем скрипте testscript2.php, когда я обращаюсь к переменной $ _SERVER ['REQUEST_URI'], я вижу /testscript1.php/testvar1/testvar2, а не /testscript2.php/testvar3/testvar4, который я ищу.т. е. $ _SERVER ['REQUEST_URI'] содержит URI до перезаписи.

Мой вопрос прост: есть ли способ доступа к переписанному URI?

Ответы [ 2 ]

2 голосов
/ 22 октября 2010

Попробуйте использовать phpinfo(), чтобы получить представление о том, как $_SERVER выглядит на переписанной странице.Apache предоставляет довольно много информации, которая может быть полезна.

На моем тестовом сервере я получаю следующее, что может вам помочь:

$_SERVER["REDIRECT_QUERY_STRING"]
$_SERVER["REDIRECT_URL"]
$_SERVER["QUERY_STRING"]
$_SERVER["REQUEST_URI"]
$_SERVER["SCRIPT_NAME"]
$_SERVER["PHP_SELF"]

Я ожидаю, что хотя бы один илиих комбинация должна быть в состоянии надежно дать вам информацию, которую вы ищете.

Приветствия.

1 голос
/ 22 октября 2010

Если вы используете информацию о пути для передачи дополнительного пути, вы можете удалить этот суффикс из PHP_SELF :

substr(parse_url($_SERVER['PHP_SELF'], PHP_URL_PATH), -strlen($_SERVER['PATH_INFO']))

Или просто используйте SCRIPT_NAME , поскольку PHP_SELF = SCRIPT_NAME + PATH_INFO . Просто взгляните на различные значения в $_SEVER.

...