Насколько надежный URIs как/index.php/seo_path

Я заметил, это иногда (особенно, где mod_rewrite не доступен), эта схема пути используется:

http://host/path/index.php/clean_url_here
--------------------------^

Это, кажется, работает, по крайней мере, в Apache, где index.php назван, и можно запросить /clean_url_here часть через $_SERVER['PATH_INFO']. PHP даже отчасти рекламирует эту функцию. Кроме того, например, платформа CodeIgniter использует эту технику в качестве значения по умолчанию для их URL.

Вопрос: Насколько надежный техника? Есть ли ситуации, где Apache не звонит index.php но попытки разрешить путь? Что относительно lighttpd, nginx, IIS, AOLServer?

Вопрос о ServerFault? Я думаю, что это имеет больше, чтобы сделать с использованием этой функции в коде PHP. Поэтому я спрашиваю здесь.

Приложение: Как предложено VolkerK, разумное расширение этого вопроса: Как программист может влиять на существование $_SERVER['PATH_INFO'] на различных типах сервера?

6
задан Boldewyn 14 April 2010 в 08:02
поделиться

4 ответа

Я думаю, что это вопрос, который одинаково подходит для stackoverflow и serverfault. Например. Я, как разработчик, могу только сказать вам, что pathinfo заслуживает доверия, как и любой вводимый пользователем (что означает, что он может содержать практически что угодно), и ваш сценарий может получать или не получать его в зависимости от версии и конфигурации веб-сервера:

Apache: AcceptPathInfo
IIS: например AllowPathInfoForScriptMappings и другие
и так далее и так далее ...

Но администраторы серверов, возможно, могут сказать вам, какие настройки вы можете ожидать «в реальном мире» и почему эти настройки являются предпочтительными.
Итак, возникает вопрос: насколько сильно вы (или ожидаемая база пользователей) можете влиять на конфигурацию сервера.

4
ответ дан 17 December 2019 в 04:44
поделиться

AcceptPathInfo должен быть включен, чтобы это работало.

1
ответ дан 17 December 2019 в 04:44
поделиться

Могут существовать наивные сценарии (например, автоматическое связывание), которые не распознают формат этого URL. Тем самым снижается вероятность создания ссылок на ваш контент.
Поскольку для этих задач характерны самодельные шаблоны регулярных выражений, вероятность неудачи вполне реальна.

Технически с этими URL-адресами все в порядке. С точки зрения SEO они «менее совершенны».

0
ответ дан 17 December 2019 в 04:44
поделиться

По моему опыту я бы сказал, что PATH_INFO обычно доступен на обычном веб-хостинге. среды и настройки сервера - даже в IIS - но в редких случаях это не так. При создании приложения, которое предполагается развернуть на максимально возможном количестве платформ, я бы не стал доверять path_info на жестко заданном уровне.

По возможности я пытаюсь создать функцию-оболочку build_url () , которая, в зависимости от настройки конфигурации, использует либо

  • необработанный URL www.example.com/index. php? clean_url = clean_url_here
  • механизм path_info www.example.com/index.php/clean_url
  • mod_rewrite www.example.com/clean_url

и используйте его во всех URL-адресах приложения. испускает.

0
ответ дан 17 December 2019 в 04:44
поделиться
Другие вопросы по тегам:

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