URL-ы! URL-ы! URL-ы!

URLS! URLS! URLS!
автор: Билл Хамфрис (Bill Humphries) и A List Apart
перевод: Александр Качанов

1. Красивый URL - важная деталь
2. Как настроить Apache
3. RewriteRule для статических страниц

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 также поддерживает подобную функцию.

Ссылки

  • Хорошие URL-ы являются частью пользовательского интерфейса. Об этом рассуждает Якоб Нильсен (Jakob Nielsen) в статье URL как элемент пользовательского интерфейса.
  • Эта статья появилась отчасти благодаря статье Тима Беренса-Ли (Tim Berners-Lee), в которой утверждается, что хорошие URL-ы никогда не должны меняться. http://www.w3.org/Provider/Style/URI
  • На своем сайте Rafe Engelschall приводит несколько хороших готовых примеров для модуля mod_rewrite http://www.engelschall.com/pw/apache/rewriteguide/.
  • А я сам лично пользуюсь этим приемом для создания стандартного интерфейса на своем сайте WebLog.

1. Красивый URL - важная деталь
2. Как настроить Apache
3. RewriteRule для статических страниц

BILL HUMPHRIES

« назад к списку статей

Rambler's Top100
Rating All.BY
Akavita
Valid XHTML 1.0!