Общие > Веб Сервера
ЧПУ на основе 404 ошибки, как исправить?
(1/1)
metton23:
Недавно столкнулся с CMS, особенностью которой является то, что ЧПУ построено на обработке физически несуществующих адресов. То есть, для каждой запрошенной страницы выдается ошибка 404, а errordocument - index.php, который и обрабатывает несуществующие адреса. Это очень мешает продвижению ресурса в поисковых системах, если не сказать, делает его практически невозможным.
Собственно, вопрос: можно ли как-то усовершенствовать данный метод ЧПУ, не переписывая CMS? Например, при запросе несуществующих страниц как-то подменять код возврата сервера?
USE:
--- Цитировать ---
Способ два
Думаем дальше. Раз страница не существует, то она выдает 404. Так что вторая идея — прописать в фале .htaccess страницу, которая будет выдаваться при ошибке 404, а уже эта страница будет смотреть на текущий УРЛ и выдавать нужный документ
То есть, в .htaccess пишем:
------------------------------------
ErrorDocument 404 /index.php3
ErrorDocument 401 /index.php3
------------------------------------
Пользователь набирает http://spectator.ru/technology/php/user_friendly_urls, такая страница не найдена, и загружается файл index.php3. Дальше — все просто. Переменная $REQUEST_URI дает нам адрес вызываемой страницы (в данном случае это будет /technology/php/user_friendly_urls), вывести на экран соответствующий документ — дело техники.
Этого мало. В некоторых браузерах и с поисковиками такой фокус не пройдет: страница 404 будет выдавать соответствующий код, и страницы индексироваться не будут. Поэтому надо, чтобы страница, которая грузится в случае ошибки 404, изменяла бы код ошибки и сигналила, мол, все ОК, есть такая страница:
Итого: прописываем в .htaccess страницу, которая, собственно, за все отвечает (у меня это index.php3). В этой странице пишем php-скрипт, который работает с $REQUEST_URI, шлет заголовок «http/1.0 200 Ok» и отображает то, что надо.
Плюсы: Очень простой способ. Работает почти везде.
Минусы: При таком способе нельзя постить содержимое формы на несуществующие псевдоурлы. И если в Апаче ведется лог 404-ых ошибок, то он будет забит.
--- Конец цитаты ---
http://spectator.ru/technology/php/user_friendly_urls
Навигация
Перейти к полной версии