mod_rewrite или path_info для чистых URL-адресов

Я всегда использовал mod_rewrite для создания чистых URL-адресов, до недавнего времени я не знал, что есть другой вариант. Несколько недель назад кто-то здесь указал, что точно такого же эффекта можно добиться с помощью apache PATH_INFO. Думая об этом сейчас, я предполагаю, что это то, что делает большинство фреймворков PHP, опционально полагаясь на mod_rewrite исключительно для удаления начальной загрузки index.php из URL-адреса.

Все приводит к нескольким вопросам:

  1. Как лучше создать чистую и гибкую структуру URL, например: /page/var/foo/bar/2?
  2. Каковы относительные преимущества/недостатки двух методов?
  3. Какой метод лучше работает с точки зрения использования ресурсов и т. д.?

Спасибо.


person robjmills    schedule 14.10.2009    source источник


Ответы (1)


с pathinfo у вас всегда будет имя скрипта в URL-адресе, что выглядит довольно неубедительно (и не считается действительным некоторыми агентами). Я бы предложил mod_rewrite в качестве основного метода с pathinfo или обработчиком 404 в качестве запасных вариантов.

person user187291    schedule 14.10.2009
comment
почти уверен, что видел примеры path_info без имени скрипта в URL, кто-нибудь может подтвердить? - person robjmills; 14.10.2009
comment
Я бы сказал, что это невозможно, но я ошибался раньше. Однако использование mod_rewrite для простого перенаправления всех запросов в сценарий и использование path_info в этом сценарии вполне возможно и, насколько я понимаю, очень распространено. - person nikc.org; 14.10.2009