И снова 301 редирект...

A
На сайте с 10.05.2015
Offline
15
453

Понимаю, что тема заезжена и много раз обсуждалась, тем не менее...

Мне нужно убрать слеш в конце адреса, т.е.

http://example.com/ -> 301 ->http://example.com

Найденное решение:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]

Однако при проверке ответа сервера страница http://example.com/ возвращает не "301 Moved Permanently", а "200 OK".

Является ли это проблемой и если да, как ее решить?

Магазин аккаунтов с балансом Litres,DNS,Ozon,Rotapost и еще 50+ других сервисов тут - vk.cc/7QK0Sk
W
На сайте с 03.08.2015
Offline
20
#1

Если страница открывается только в одном из вариантов, значит проблема решена, если же открывается как со / так и без него, попробуйте вот этот редирект:

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.+)/$ /$1 [R=301,L]

Также проверьте как открываются внутренние страницы сайта, он также должны открываться в одном из вариантов либо со /, либо без него, для избежания дублей.

A
На сайте с 10.05.2015
Offline
15
#2
wezom:
Если страница открывается только в одном из вариантов, значит проблема решена, если же открывается как со / так и без него, попробуйте вот этот редирект:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]
Также проверьте как открываются внутренние страницы сайта, он также должны открываться в одном из вариантов либо со /, либо без него, для избежания дублей.

Но ведь это почти то же самое, что и решение которое нашел я и которое как мне кажется работает не верно. У вашего решения тот же эффект.

И потом редирект означает переадресацию на другую страницу. Если попытаться открыть example.com/ то будет переадресация на example.com, а не на 404 или другую страницу. Тут все корректно, кроме ответа сервера - 200 ОК. Сервер должен отвечать 301 Move...

W
На сайте с 03.08.2015
Offline
20
#3

В случае с главной страницей ответ 200 вместо 301 не является проблемой, вот на примере searchengines.guru/ когда при проверки страницы со / отдает ответ 200 (см. скриншот) http://prntscr.com/8bcqzr

A
На сайте с 10.05.2015
Offline
15
#4

Это может быть ошибкой и на searchengines.guru/

Вы же понимаете, что для яндекса, допустим, страница со слешем и без слеша - это разные адреса. Так как по обоим адресам располагается одинаковый контент - имеем дубль. Значит нужно настроить переадресацию так, чтобы сервер выдавал по одному из адресов либо 404 (что неприемлимо), либо 301. А он выдает 200.

На мой взгляд - это проблема.

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