301 Redirect в .htaccess добавляет старый путь к файлу / имя к новому URL - PullRequest
0 голосов
/ 22 марта 2019

У меня есть два URL: old-site.com и new-site.com. В моей корневой папке на old-site.com нет файлов, а есть только файл .htaccess. Я не хочу больше использовать старый домен. Однако я хочу передать сок ссылки на новый домен. Поэтому я создал 301 Redirects в файле .htaccess и поместил его в корневую папку на old-site.com.

Зачем Redirect 301 добавлять «old-site.com/…» к new-site.com?

?

Весь мой .htaccess выглядит следующим образом (я пропустил несколько ссылок, чтобы его сократить):

#Begin 301 Redirects
Redirect 301 / https://www.new-site.com/
Redirect 301 /contactus https://www.new-site/contact-us/
Redirect 301 /rentals https://www.new-site/lodging/
Redirect 301 /lift.html https://www.new-site/our-rentals/boat/
Redirect 301 /rentals.html https://www.new-site/our-rentals/
Redirect 301 /map.html https://www.new-site/contact-us/
Redirect 301 /giftshop https://www.new-site/store/gift-shop/
#End 301 Redirects

У меня нет переписываний. Выше мой весь код.

Следующее перенаправление работает нормально:

Redirect 301 / https://www.new-site.com/

Однако любой другой редирект создает следующий абсолютный путь на new-site.com с ошибкой 404:

Если я перенаправлю:

Redirect 301 /contactus https://www.new-site/contact-us/

Это идет к:


https://www.new-site.com/old-site.com/contactus

или

Если я перенаправлю:

Redirect 301 /lift.html https://www.new-site/lift/

Идет к:


https://www.new-site.com/old-site.com/lift.html

Зачем Redirect 301 добавлять «old-site.com/…» к new-site.com?

?

Спасибо,

Derek

1 Ответ

0 голосов
/ 22 марта 2019

Ваши правила не будут делать то, что вам нужно исправить, из-за этой строки Redirect 301 / https://www.new-site.com/, которая сначала будет соответствовать любому запросу, а если вы поставите его последним, он также будет соответствовать любому запросу, поэтому, если вы хотите, чтобы он совпадал только с использованием root RedirectMatch чтобы иметь возможность использовать регулярные выражения следующим образом:

RedirectMatch 301 /?$ https://www.new-site.com/

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

Примечание: очистить кеш браузера при тестировании

...