Заметки об Amiro.CMS

ErrorDocument VS mod_rewrite

12.11.10 02:02

Разработчики Amiro.CMS по умолчанию предлагают для всех сайтов использовать ErrorDocument. Какие в этом есть плюсы и какие есть минусы, давайте разберемся.

И так, что такое ErrorDocument:

Директива ErrorDocument позволяет устанавливать альтернативные страницы ошибок.

Она используется для того, чтобы при запросе через браузер несуществующего в директории сайта файла, обработка переходила скрипту самой CMS. Таким образом осуществляется работа с ЧПУ. Прописывается директива в .htaccess файле и выглядит запись так:

ErrorDocument 404 /pages.php

Альтернативный вариант - это использовать mod_rewrite.

А что такое mod_rewrite:

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

По сути он в немного усложненном варианте записи позволяет добиться схожего поведения и результата:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^(.*)$ pages.php [L]

Но есть отличия в использовании:

  1. При использовании ErrorDocument засоряется лог ошибок: каждый запрос страницы CMS фиксируется в лог файле, как обращение к несуществующему документу. Как результат затрудняется его чтение и анализ, возможны некорректные данные в результатах работы таких анализаторов, как Awstats, Webalizer и другие.
  2. Все POST запросы из форм на страницах должны отправляться на pages.php в противном случае при использовании ErrorDocument, плагин или модуль, который обслуживает запрошенную страницу не получит данные из этой формы. 
  3. В самой директории сайта могут возникнуть трудности в одновременном использовании mod_rewrite и ErrorDocument.

Пожалуй из минусов использования mod_rewrite можно отметить лишь то, что потребуется в файле .htaccess указать не одну строку, а пять. Но это, на наш взгляд, не столь критично.

Каких-либо потерь производительности в работе сайта и самой CMS или сложностей в индексировании поисковыми системами нами выявлено не было.

Поэтому мы сами используем mod_rewrite вместо предлагаемого по умолчанию ErrorDocument. Плагины и решения для Amiro.CMS затачиваем под использование именно mod_rewrite, но всегда можем перенастроить их и на ErrorDocument, благо изменения незначительные и касаются преимущественно только отправки POST данных из форм:

Используя ErrorDocument форма должны выглядеть примерно так:

<form action="/pages.php" method="POST">
<input name="modlink" value="current_page_link.html" type="hidden">
....
</form>

Используя mod_rewrite получаем форму такого вида:

<form action="current_page_link.html" method="POST">
....
</form>

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

Заключение 

Какой вариант использовать, какой именно технологии придерживаться, решать только Вам! Amiro.CMS и сайты на базе этого движка работают одинаково хорошо в обоих случаях. Мы лишь изложили наше видение и альтернативное решение, которое нам нравится больше.



Рубрики: Хаки ErrorDocument mod_rewrite


« * html в файлах стилей CSS  | В начало |  Кто ты: пользователь или администратор? »



При перепечатке, копировании материалов с сайта прямая и активная ссылка, разрешенная для индексации поисковыми роботами, на источник www.amirocmspro.ru обязательна!

Поиск по сайту

Loading

Облако тегов

5.10.x 5.12.0.4 5.14.x.x 6.0.x AMI AMI::getOption Amiro.CMS AMI_Registry AMI_RequestHTTP API CSS DBD MySQL DB_Query ErrorDocument getPluginOption HTML https INSERT jQuery modId mod_rewrite MySQL Perl PHP PHPкодим pluginId sm_tree.tpl SSL subs_send_single Tools



Купить Amiro CMS

Хотите купить платную редакцию Amiro.CMS? Напишите нам!




Почему коммерческие CMSПочему Amiro.CMSПоискПартнеры и друзьяКарта сайта
2010-2014 © AmiroCMSPro.ru | Amiro.CMS глазами администратора системы. - проект nsk21.ru
Лучший хостинг для сайтов на Амиро.CMS». Учебе время - потехе час!
Работает на Amiro CMS - Free