Автор Тема: ЧПУ на основе 404 ошибки, как исправить?  (Прочитано 3890 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн metton23

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 2
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.simplics.ru/
Недавно столкнулся с CMS, особенностью которой является то, что ЧПУ построено на обработке физически несуществующих адресов. То есть, для каждой запрошенной страницы выдается ошибка 404, а errordocument - index.php, который и обрабатывает несуществующие адреса. Это очень мешает продвижению ресурса в поисковых системах, если не сказать, делает его практически невозможным.

Собственно, вопрос: можно ли как-то усовершенствовать данный метод ЧПУ, не переписывая CMS? Например, при запросе несуществующих страниц как-то подменять код возврата сервера?

Оффлайн USE

  • Любитель
  • Ветеран
  • *****
  • Сообщений: 720
  • +0/-0
  • 2
    • Просмотр профиля
ЧПУ на основе 404 ошибки, как исправить?
« Ответ #1 : 26 Июня 2008, 20:56:47 »
Цитировать

Способ два

Думаем дальше. Раз страница не существует, то она выдает 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
Не ходите, дети, без «Мозиллы» дальше localhost!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28