Как правильно настроить редирект?

J
На сайте с 30.11.2005
Offline
118
257

Сайт переехал с одного домена на другой. На старом сайте настроил постраничную склейку:

RewriteCond %{HTTP_HOST} !^newdomain\.ru$ [NC]

RewriteRule (.*) https://www.newdomain.ru%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP_HOST} ^newdomain.ru

RewriteRule ^(.*)$ https://www.newdomain.ru/$1 [R=permanent,L]

Теперь при переходе по на главную страницу старого домена происходит нормальный редирект на новый.

Но, если перейти по внутренней странице старого домена, например:

https://www.olddomain.ru/rules.htm

то редирект происходит на страницу

https://www.newdomain.ru/index.php?id=rules, а должен https://www.newdomain.ru/rules.htm

Получается, что в индекс ПС полезут дубли, а мне этого не надо. Как исправить эту ситуацию?

Наверное, самой просто вариант - настроить на новом домене постраничный редирект с https://www.newdomain.ru/index.php?id=* на https://www.newdomain.ru/*.htm

Но как это сделать? Если не сложно, напишите команду в .htaccess.

Gerga
На сайте с 02.08.2015
Offline
89
#1
Juggernaut:
настроить на новом домене постраничный редирект с https://www.newdomain.ru/index.php?id=* на https://www.newdomain.ru/*.htm

Тогда получится зацикливание, потому что скорее всего новый сайт делает редирект

c https://www.newdomain.ru/rules.htm на https://www.newdomain.ru/index.php?id=rules.

Цепочку редиректов тут https://tools.otzyvmarketing.ru/otvet_servera можете проследить

---------- Добавлено 29.08.2019 в 20:03 ----------

Juggernaut:
RewriteCond %{HTTP_HOST}

Условия RewriteCond не обязательны на старом сайте.

J
На сайте с 30.11.2005
Offline
118
#2

Не понял, почему будет зацикливание.

https://www.olddomain.ru/rules.htm

переходи на

https://www.newdomain.ru/index.php?id=rules

переходит на

https://www.newdomain.ru/rules.htm

конец

Gerga
На сайте с 02.08.2015
Offline
89
#3

Juggernaut, а почему https://www.olddomain.ru/rules.htm переходит на https://www.newdomain.ru/index.php?id=rules ?

В вашем примере

Juggernaut:
RewriteCond %{HTTP_HOST} !^newdomain\.ru$ [NC]
RewriteRule (.*) https://www.newdomain.ru%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP_HOST} ^newdomain.ru
RewriteRule ^(.*)$ https://www.newdomain.ru/$1 [R=permanent,L]

Это будет делать редирект:

https://www.olddomain.ru/rules.htm

на

https://www.newdomain.ru/rules.htm

но видимо что-то на newdomain.ru делает еще один редирект на

https://www.newdomain.ru/index.php?id=rules.

J
На сайте с 30.11.2005
Offline
118
#4

Все, вопрос снят. Я просмотрел еще раз .htaccess, там были левые инструкции, которые переводили на этот index.

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