Проблема с редиректом

12
OD
На сайте с 08.12.2016
Offline
24
908

Проблема: в индексе страница www.сайт.ru/index.html, все страницы на www версии редиректит на www.сайт.ru/index.html

главная страница сайта сайт.ru, пытался делать постраничный редирект, редирект с версии www на без www, итог - не работает редирект с этой страницы на без www. Мало разбираюсь в Htaccess, возможно кто-то подскажет решение?

Прикладываю ниже свой htaccess (движок - WP).

# BEGIN WordPress

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

RewriteCond %{HTTP_HOST} ^www.сайт.ru\.ru$ [NC]

RewriteRule ^(.*)$ http://сайт.ru/$1 [R=301,L]

</IfModule>

Samail
На сайте с 10.05.2007
Offline
369
#1

Вот это:

RewriteCond %{HTTP_HOST} ^www.сайт.ru\.ru$ [NC]

RewriteRule ^(.*)$ http://сайт.ru/$1 [R=301,L]

Замените на это:

RewriteCond %{HTTP_HOST}  ^www\.(.+)$  [NC]

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


---------- Добавлено 10.01.2018 в 18:41 ----------

OlegDP:
все страницы на www версии редиректит на www.сайт.ru/index.html

Вот это не понятно что имелось ввиду

OD
На сайте с 08.12.2016
Offline
24
#2
Samail:
Вот это:
RewriteCond %{HTTP_HOST} ^www.сайт.ru\.ru$ [NC]

RewriteRule ^(.*)$ http://сайт.ru/$1 [R=301,L]

Замените на это:
RewriteCond %{HTTP_HOST}  ^www\.(.+)$  [NC]

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


---------- Добавлено 10.01.2018 в 18:41 ----------


Вот это не понятно что имелось ввиду

Не помогло. Имел ввиду, что если написать www.сайт.ru или www.сайт.ru/любаястраница их редиректит на www.сайт.ru/index.html

S
На сайте с 30.09.2016
Offline
469
#3
OlegDP:
итог - не работает

Что не работает?

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
OD
На сайте с 08.12.2016
Offline
24
#4
Sitealert:
Что не работает?

Редирект с этой страницы на основную без www

S
На сайте с 30.09.2016
Offline
469
#5

Всю эту хрень с www надо вставлять сразу после

RewriteBase /
OD
На сайте с 08.12.2016
Offline
24
#6
Sitealert:
Всю эту хрень с www надо вставлять сразу после
RewriteBase /

Не помогло

S
На сайте с 30.09.2016
Offline
469
#7

Что, так и остаётся с www? Покажите, какой сейчас хтакцесс получился, чтобы зря голову не ломать.

OD
На сайте с 08.12.2016
Offline
24
#8
Sitealert:
Что, так и остаётся с www? Покажите, какой сейчас хтакцесс получился, чтобы зря голову не ломать.

Делал два варианта:

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.сайт.ru\.ru$ [NC]
RewriteRule ^(.*)$ http://сайт.ru/$1 [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

и

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*) http://%1/$1 [L,R=301]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
S
На сайте с 30.09.2016
Offline
469
#9

Попробуйте для чистоты эксперимента во втором варианте записать правило как положено

RewriteCond %{HTTP_HOST} ^www\.(.+)$  [NC]
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
То есть с символом окончания строки $ и одним пробелом после него. И в условии тоже уберите лишний пробел.
OD
На сайте с 08.12.2016
Offline
24
#10
Sitealert:
Попробуйте для чистоты эксперимента во втором варианте записать правило как положено
RewriteCond %{HTTP_HOST} ^www\.(.+)$  [NC]

RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
То есть с символом окончания строки $ и одним пробелом после него. И в условии тоже уберите лишний пробел.

Не помогло, еще заметил одну штуку - если зайти на sait.ru/index.html его тоже средиректит на www.sait.ru/index.html

Возможно проблема где то глубже, может где то еще быть настроен редирект кроме htaccess?

12

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