Технически SEO тактики за международни сайтове за електронна търговия | Международно SEO

Разработвам относително статичен уебсайт, където искам да имам достъп до всяка страница, без да пиша .html (или .htm или .xhtml ...) в края (/about не /about.html).

Разработвам с помощта на сървъра Apache 2.2 (в OSX). Връзки като горните работят добре. Без маймуниране наоколо с mod_rewrite, те просто работят.

На моя действителен уеб хост (fatcow.com) обаче това не работи (връзка към /about просто повдига грешка 404). Обадих им се и те като че ли не знаят какво става ... или особено мислят, че това е техният проблем. Те използват Apache 2.0.

Какво се случва тук и кой е най-добрият метод за заобикаляне? Предпочитам решение, което не включва добавяне на mod_rewrite запис за всяка от моите страници, но ако това е необходимо, как бих го направил?

За справка, ако все пак отида с mod_rewrite решение би изглеждало така:

RewriteEngine On RewriteBase / RewriteRule ^about$ /about.html #and so on, for each page 

Трябва да добавите следния ред във вашия .htaccess файл (и):

Options +MultiViews 

Ефектът на MultiViews е както следва: ако сървърът получи заявка за /some/dir/foo, ако /some/dir има активиран MultiViews и /some/dir/foo не съществува, тогава сървърът чете директорията, търсейки имената на файлове foo.*и ефективно фалшифицира типова карта, която назовава всички тези файлове, като им присвоява същите типове медии и кодиране на съдържанието, които би имала, ако клиентът поиска един от тях по име. След това избира най-доброто съответствие с изискванията на клиента.

Вижте тези връзки за подробности:

  • http://httpd.apache.org/docs/current/mod/core.html#options
  • http://httpd.apache.org/docs/current/content-negotiation.html#negotiation (превъртете малко, докато видите Multiviews заглавка)

АКТУАЛИЗАЦИЯ:

Ако трябва да използвате mod_rewrite, използвайте това правило - той ще се опита да пренапише всички URL адреси без разширение на един и същ, но с .html. Няма да е необходимо да се посочват отделни правила за всеки от тези URL адреси:

RewriteEngine On RewriteBase / # add .html file extension RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.html -f RewriteRule ^(.+)$ $1.html [L,QSA] 

P.S. Може да се наложи да добавите ресничка / преди $1 - зависи от вашата конфигурация на Apache.

  • Опитах, но не успя. Повишава HTTP грешка 500 Вътрешна грешка на сървъра.
  • @Adam Като добавите този ред, имате 500 грешки? Хм .. какво пише в дневника за грешки на Apache за това? Възможно е да е забранено да презаписвате тези настройки на вашия хостинг .. или сте го направили погрешно по някакъв начин (няма идея).
  • @Adam Ако в крайна сметка ще трябва да използвате mod_rewrite, използвайте това правило (вижте актуализирания отговор)
  • Не съм сигурен защо MultiViews не работи. Подозирам, че fatcow не позволява това (и има техническа поддръжка, която не знае това). Правилото за пренаписване работи чудесно - благодаря.

е работил за вас: Charles Robertson | Искате ли да се свържете с нас?