301 редирект - добавить косую черту для индексной страницы - PullRequest
0 голосов
/ 20 декабря 2009

Как установить перенаправление 301 в .htaccess, чтобы добавить косую черту в корневой каталог документа, если кто-то ссылается на вас без него?

Согласно проведенному мною исследованию, большинство поисковых систем рассматривают следующие URL как два разных URL.

mydomain.com (без косой черты)

mydomain.com / (косая черта)

Я пробовал это (плюс многие другие):

RewriteRule ^ $ http://www.mydomain.com/ [R = 301, L]

Это бросает его в цикл, загружающий страницу снова и снова.

Ответы [ 2 ]

0 голосов
/ 20 декабря 2009

Вы можете попробовать что-то подобное

убедитесь, что вы соответствуете домену без /, и если не сделать перенаправление.

RewriteCond %{HTTP_HOST} ^mydomain\.com$ 
RewriteRule ^(.*)$ http://mydomain.com/$1 [L,R=301]
0 голосов
/ 20 декабря 2009

Я думаю, что вы сделали неверные выводы из своего исследования. Для HTTP Root-URL без косой черты задан равным прямому слешу:

Обратите внимание, что абсолютный путь не может быть пустым; если ни один не присутствует в исходном URI, он ДОЛЖЕН быть задан как "/" (корень сервера). [RFC 2616, раздел 5.1.2]

Следовательно, если исходный URL является только доменным именем, которое не заканчивается прямой косой чертой (т. Е. Абсолютный путь будет пустым), этот URL будет расширен прямой косой чертой. Вам не нужно ничего делать.

Что касается вашей проблемы: из-за тонкостей mod_rewrite первая косая черта опущена, поэтому ваш RewriteRule захватил корневой URL-адрес и отправил запросчик в цикле перенаправления.

...