redirect страничук с суфиксом ".html" и без него

Статус
В этой теме нельзя размещать новые ответы.

AntonR

Гуру форума
Регистрация
29 Ноя 2007
Сообщения
178
Реакции
75
Подскажите, пожалуйста, как сделать redirect 301 всех страничек вида
Для просмотра ссылки Войди или Зарегистрируйся
на
Для просмотра ссылки Войди или Зарегистрируйся ?

И наоборот:
с
Для просмотра ссылки Войди или Зарегистрируйся
на
Для просмотра ссылки Войди или Зарегистрируйся.

П.С. Зацыкливать не собираюсь :). Просто надо знать два случая!
 
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(www\.site\.ru\/.*\/)page.html$ $1page [R=301,L]
</IfModule>

-----

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(www\.site\.ru\/.*\/)page$ $1page.html [R=301,L]
</IfModule>
 
Я думаю можно сделать универсальнее, не всегда ведь страница page:
RewriteEngine on
RewriteBase /
RewriteRule (.*)\.html$ $1 [R=301,L]

Либо наоборот:
RewriteEngine on
RewriteBase /
RewriteRule (.*)$ $1.html [R=301,L]

Но в последнем выражении, будет добавлять .html ко всем адресам, так что нужно следить чтобы не было двойного .html
 
О так как это отследить?!?! ведь в этом вся и фишка?
 
Так я не понял, у вас страницы на сайте как называются с .html или без?
Выбирайте уже свой вариант и делайте.

Смысла создавать два одинаковых адреса нет, т.к. позабанят поисковики за дубликаты.

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

RewriteEngine on
RewriteBase /
RewriteRule (.*)([^h][^t][^m][^l])?$ $1.html [R=301,L]
 
Это ж я понимаю все про дубликаты, поэтому, и борось с этим :)!!!
Сайт на Joomla, а ей все равно есть в конце .html или нету. Просто был глюк и сайт работал без .html и наплодились странички без .html в конце.
Сейчас я хочу склеить все странички что появилися без .html.

+

подскажите, пожалуйста, по этой конструкции если 2 домена нужно склеивать:

RewriteCond %{HTTP_HOST} ^www\.site2\.ru [NC]
RewriteCond %{HTTP_HOST} ^.site2\.ru [NC]
RewriteCond %{HTTP_HOST} ^.site1\.ru [NC]
RewriteRule ^(.*)$ http://www.site1.ru/$1 [L,R=301]

Правильно ли?
+
как сделать, чтобы странички, которые не заканчиваются на .html, все же заканчивалися?
 
всмысле ты хочеш чтоб тебе мод_реврайт сам все заменил ? ты вообще принцип мод реврайта понимаешь ?
 
не, ну я хочу ко всем страничкам которые не заканчиваются на .html добавить .html!
Что так разве нельзя?!
 
С джумлой, я не работал, осоебенностей не знаю, но:
Сейчас я хочу склеить все странички что появилися без .html.
тогда проверьте последний мой пассаж, должно помочь.
подскажите, пожалуйста, по этой конструкции если 2 домена нужно склеивать:
...
Правильно ли?
Да, должно работать. Еще в robots.txt нужно указать главный сайт.
как сделать, чтобы странички, которые не заканчиваются на .html, все же заканчивалися?
Если только через mod_rewrite то попробуйте, как я написал. А вообще, у меня предчувствие, что в джумле можно как-то это все настроить и исправить.

Добавлено через 6 минут
Даже можно вот так:
Код:
RewriteEngine on
RewriteBase /
RewriteCond {%REQUEST_URL} !\.html$
RewriteRule (.*)$ $1.html [R=301,L]
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху