2011-02-01 3 views
2

Как клиент может определить, использует ли сервер mod_rewrite? Теперь я знаю, что некоторые правила mod_rewrite не очень очевидны. Но некоторые из них, такие как «SEO Friendly Urls». Какие типы поведения невозможны, если сервер не работает mod_rewrite?Обнаружение, если Apache использует mod_rewrite

+0

Нет никакого поведения, которое * полностью * невозможно, но существуют шаблоны, которые происходят крайне редко без mod_rewrite. –

+0

Обратите внимание, что существует не только одно программное обеспечение веб-сервера. – Gumbo

+0

@ Gumbo ♦ Правда, но огромное количество веб-серверов в Интернете - это Apache. Если вы знаете о другом методе для какого-то странного HTTPD, я дам вам +1. – rook

ответ

4

Какие типы поведения невозможны, если сервер не работает mod_rewrite?

Настоящий ответ «нет». Теоретически любой URL-адрес может быть сформирован фактическими файлами или каталогами, включая классические URL-адреса, оптимизированные для SEO.

Существует только косвенные доказательства:

  • Лучший признак того, что я могу думать о том, когда вся структура сайта состоит из URL-адресов без .htm .php .html расширений файлов:

    http://domain.com/slugs/house-warming-party 
    

    исключить возможность того, что этот URL является каталогом, запрос

    http://domain.com/slugs/house-warming-party/index.htm 
    http://domain.com/slugs/house-warming-party/index.html 
    http://domain.com/slugs/house-warming-party/index.php 
    http://domain.com/slugs/house-warming-party/index.asp 
    ... whatever other extensions there are ..... 
    

    если эти запросы все не удалось, очень вероятно, что сайт использует mod_rewrite. Однако, если они преуспеют, как говорит @Gumbo, это также может быть опция MultiViews, которая исправляет запрос. В любом случае, это нигде рядом с безопасным!

  • В зависимости от вашего использования, вы также можете попытаться вычесть вещи из CMS, используемых на сайте. Wordpress с включенным mod_rewrite покажет другую структуру URL-адреса, чем при выключенном. То же самое справедливо и для большинства других CMS. Но, конечно, это также очень несовершенный подход.

  • Использование HTML ресурсов с .html/.htm/.php окончание будет указывать немного против использования mod_rewrite, но вы никогда не можете быть уверены.

  • Использование переменной Pathinfo (также известный как mod_rewrite бедняка) хотел бы отметить несколько решительно против использования mod_rewrite:

    http://example.com/index.php/slugs/house-warming-party 
    

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

+1

MultiViews позволяет такое же поведение. – Gumbo

+0

+1 другой хороший ответ. – rook

Смежные вопросы