Перенаправить старый домен и страницы на эквивалентные страницы на новом домене

73
8

Я пытаюсь перенаправить старый домен на новый домен. Страницы имеют одинаковые имена, например /my-amazing-page, однако на новом веб-сайте URL будет /se/my-amazing-page.

Так, например, мне нужно правило, которое перенаправляет

olddomain.se/recipes/[ALL RECIPE PAGES]

в

newdomain.com/se/recipes/[ALL RECIPE PAGES]

Я попробовал многие ответы здесь о переполнении стека, а также о решениях, описанных здесь, но я просто не могу заставить их работать. Все, что они делают - перенаправляют старый домен на домашнюю страницу (корень) нового домена и игнорируют подкаталог и страницы.

В настоящее время я использую следующее:

RewriteCond %{HTTP_HOST} ^olddomain\.com/recipes/$ [NC]
RewriteRule ^(.*)$ https://newdomain.com/se/recipes/$1 [R=301,L]

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

# BEGIN WordPress
RewriteEngine On

RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

# END WordPress

RewriteCond %{HTTP_HOST} ^olddomain.com$ [NC]
RewriteCond %{REQUEST_URI} ^/recipes/
RewriteRule ^recipes/(.*)$ https://newdomain.com/se/recipes/$1 [R=301,L]

спросил(а) 2019-02-28T11:28:00+03:00 9 месяцев, 1 неделя назад
1
Решение
57

/recipes - это путь URL, а не хост. Вам нужно использовать ℅{REQUEST_URI}. чтобы соответствовать пути URL. Следующее правило должно работать.

RewriteCond %{HTTP_HOST} ^olddomain.com$ [NC]
RewriteCond %{REQUEST_URI} ^/recipes/
RewriteRule ^recipes/(.*)$ https://newdomain.com/se/recipes/$1 [R=301,L]

Второй RewriteCond является необязательным в этом правиле. Вы можете удалить, потому что RewriteRule уже заботится о пути URL, начинающемся с /recipes.

ответил(а) 2019-02-28T13:09:00+03:00 9 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема