Проверьте в PHP, включен ли PATH_INFO на вашем сервере?

Начиная с PHP, существует ли кроссплатформенный, кросс-серверный способ определения, включен ли PATH_INFO на сервере, на котором вы работаете?

Похоже, что $_SERVER['PATH_INFO'] заполняется только в том случае, если после скрипта есть дополнительные сегменты пути, поэтому вы не можете с уверенностью сказать, включен ли PATH_INFO, например, для запроса /index.php.

2 ответа

Решение

Я не думаю, что есть определенный способ получить такое значение конфигурации Apache.

Одна мысль, которая приходит в голову, это сделать запрос с помощью file_get_contents() в

http://current_site_domain/check.php/test

check.php будет выводить $_SERVER['PATH_INFO'],

Если результатом запроса является "test", PATH_INFO работает.

Конечно, это может не сработать, потому что открытие URL отключено, потому что вы не знаете локальный домен, потому что есть брандмауэр и т. Д. И т. Д.

Другой способ, который менее подвержен ошибкам, - это использование iframe:

<iframe src="/check.php/It%20works!"></iframe>

Если вы видите "это работает" внутри ifrane, PATH_INFO работает. Возможно, полезно для процедуры установки.

$_SERVER["PATH_INFO"] всегда должен быть доступен. Если это не так, это просто означает, что не было никакой дополнительной информации между именем файла и строкой запроса.

Другие вопросы по тегам