Помощь с файлом .htaccess

R
На сайте с 10.09.2012
Offline
26
774

Добрый день!

На сайте куча дублей такого рода:

domen.ru/statya/index.htm

domen.ru/statya/

domen.ru/statya

Что написать в файле .htaccess, чтоб был 301 редирект таких видов страниц на страницу: domen.ru/statya. Просто закрыть в файле роботс не хочу.

J
На сайте с 20.02.2014
Offline
120
jkm
#1


RewriteEngine On
RewriteRule ^(.+?)/.* http://domen.ru/$1 [R=301,L]
siv1987
На сайте с 02.04.2009
Offline
427
#2

RewriteEngine On

RewriteRule ^([^/]+)/(index\.html)?$ http://domen.ru/$1 [R=301,L]

R
На сайте с 10.09.2012
Offline
26
#3
siv1987:
RewriteEngine On
RewriteRule ^([^/]+)/(index\.html)?$ http://domen.ru/$1 [R=301,L]

Добавил строку, но мне теперь в браузере пишет что-то про циклическую переадресацию. Может оно конфликтует к уже существующему документу .htaccess? Он у меня вот такой:

RewriteEngine on

Options +SymLinksIfOwnerMatch

RewriteCond %{HTTP_HOST} ^www.domen.ru$ [NC]

RewriteRule ^(.*)$ http://domen.ru/$1 [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.htm\ HTTP/

RewriteRule ^index\.htm$ http://domen.ru/ [R=301,L]

siv1987
На сайте с 02.04.2009
Offline
427
#4

Я не вижу здесь реврайты чпу. Это реально существующие папки на сервере? Тогда да - будет зацикливание. Нужно либо редиректить на с слешом в конце, либо отключить на сервере директиву которая редиректит папки без слеша. Либо можно попробовать написать реврайт.

Volnorez
На сайте с 15.02.2013
Offline
65
#5

Это я один такой? у меня склейка на www только вот так работает

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} !^www.домен.com [NC]

RewriteRule ^(.*) http://www.домен.com/$1 [L,R=301]

Без www

RewriteCond %{HTTP_HOST} !^домен.com.ua [NC]

RewriteRule ^(.*) http://домен.com.ua/$1 [L,R=301]

R
На сайте с 10.09.2012
Offline
26
#6
siv1987:
Я не вижу здесь реврайты чпу. Это реально существующие папки на сервере? Тогда да - будет зацикливание. Нужно либо редиректить на с слешом в конце, либо отключить на сервере директиву которая редиректит папки без слеша. Либо можно попробовать написать реврайт.

Я сам не особо понимаю, что там написано, знаю, что там 301 редирект с www на без и 301 редирект с домен.ру/index.htm на домен.ру. И там нет редиректов на слэшы в концы.

siv1987
На сайте с 02.04.2009
Offline
427
#7
rockyme:
Я сам не особо понимаю, что там написано

Там нет реврайтов для ЧПУ ссылок, отсюда можно сделать вывод что ваши адреса реально существующие папки на сервере. А согласно apach'у при обращении к папке без слеша должен быть редирект с его добавлением. А так как вы ставите обратный редирект - то получается зацикливание. На сколько я помню эту особенность можно отключить, либо же можно попробовать написать реврайт. Но если естественные адреса имеют слеш, то лучше не парится и оставить слеш, который судя по редиректу присутствует по умолчанию.

Volnorez:
Это я один такой? у меня склейка на www только вот так работает

У вас два разных домена указаны.

Что значит "только вот так"? Это один из способов - можно так, можно другое выражение написать, - результат будет один и тот же. Раз работает, тогда что вас не устраивает? Или он не по фэншую?

J
На сайте с 20.02.2014
Offline
120
jkm
#8
Volnorez
На сайте с 15.02.2013
Offline
65
#9
siv1987:

У вас два разных домена указаны.
Что значит "только вот так"? Это один из способов - можно так, можно другое выражение написать, - результат будет один и тот же. Раз работает, тогда что вас не устраивает? Или он не по фэншую?

Собственно я привел пример из двух разных сайтов. Один у меня с www, а другой без www.

Приведенная конструкция ТС-ом у меня не работает, по крайней мере на используемых мною cms.

RewriteCond %{HTTP_HOST} ^www.domen.ru$ [NC]

RewriteRule ^(.*)$ http://domen.ru/$1 [R=301,L]

siv1987
На сайте с 02.04.2009
Offline
427
#10
Volnorez:
Приведенная конструкция ТС-ом у меня не работает, по крайней мере на используемых мною cms.

Не правильно указали домен (или ком, или ком.уа, или ру).

Не правильно вставили (выше RewriteEngine, после реврайтов...)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий