div.main {margin-left: 20pt; margin-right: 20pt}URL-ы! URL-ы! URL-ы! (ч.3) Билл Хамфрис RewriteRule
для статических страниц
Если содержимое вашего сайта хранится в статических
страницах с именами типа
/content-1999-12-31.html /content-2000-01-01.html /content-2000-01-02.html
то вы можете также воспользоваться модулем mod_rewrite для
переделки URL-а. Вот это правило:
RewriteEngine On RewriteRule
^archives/([0-9]+)/([0-9]+)/([0-9])+ content-$1-$2-$3.html
Ну а как насчет тех дней, для которых страницы отсутствуют?
Вы получите сообщение об ошибке 404, Resource Not Found.
Сервер Apache позволяет задать собственную страницу для этой
ошибки, так что вы можете воспользоваться этим и дать
пользователю подсказку, как, например, отыскать список статей
<внимание>Замечание по поводу относительных
ссылок относится и к данному случаю. </внимание>.
Особые случаи
Что будет, если кто либо наберет
http://www.yoursite.com/archives вместо
http://www.yoursite.com/archives/ГГГГ/ММ/ДД? Система такова,
что модуль mod_rewrite переходит от одного правила к другому,
пока не обнаружит совпадение или пока список правил не
закончится. Для такого случая мы можем добавить еще одно
правило:
RewriteEngine On RewriteRule
^archives/([0-9]+)/([0-9]+)/([0-9])+
archives.cgi?date=$1-$2-$3 RewriteRule ^archives$ index.html
В этом случае будет сделан редирект на index.html. Но
можно, например, сделать редирект и на поисковую страницу.
Что делать, если у меня не Apache?
К сожалению в IIS не предусмотрен механизм переделки URL.
Для этого вам придется писать свой собственный ISAPI фильтр.
Если вы пользуетесь системой управления контентом Manila от
компании Userland's Frontier, в ней есть специальная функция,
с помощью которой адрес к определенной статье можно переделать
в простой URL.
Система Zope также
поддерживает подобную функцию.
Ссылки
Эта статья появилась отчасти благодаря статье Тима
Беренса-Ли (Tim Berners-Lee), в которой утверждается, что
хорошие URL-ы никогда не должны меняться. http://www.w3.org/Provider/Style/URI
На своем сайте Rafe Engelschall приводит несколько хороших
готовых примеров для модуля mod_rewrite http://www.engelschall.com/pw/apache/rewriteguide/.
А я сам лично пользуюсь этим приемом для создания
стандартного интерфейса на своем сайте WebLog.
|