Я пытаюсь перенаправить URL-адреса в моем старом домене WordPress на ту же структуру URL-адресов, но в моем новом домене.
Так например:
oldsite.com/post-name-1
перенаправит на newsite.com/post-name-1
oldsite.com/post-name-2
перенаправит на newsite.com/post-name-2
... и так далее.
Я пробовал добавить в .htaccess
файл в моем старом домене:
RewriteRule ^/(.*)$ https://newsite.com/$1 [R=301,L]
Какое правило мне нужно записать в свой .htaccess
файл для этого?
RewriteRule ^/(.*)$ https://newsite.com/$1 [R=301,L]
Это никогда не будет работать в каждом каталоге .htaccess
контекст файла из-за префикса косой черты на RewriteRule
шаблон. В каталог (или .htaccess
) context префикс каталога (который, в частности, заканчивается косой чертой) сначала удаляется из URL-пути до того, как произойдет сопоставление с шаблоном, поэтому сопоставленный URL-путь никогда не начинается с косой черты. В существующем виде эта директива предназначена для использования в сервер или виртуальный хост контекст.
В .htaccess
вам нужно будет удалить префикс косой черты (или сделать его необязательным):
RewriteRule ^(.*)$ https://newsite.com/$1 [R=301,L]
Однако предоставление oldsite.com
и newsite.com
в настоящее время указывают на разные хосты и WordPress .htaccess
директивы были удалены из oldsite.com
тогда вы должны реализовать безусловный Redirect
как предлагает @AndrewSchulman.
Redirect 301 / https://newsite.com/
См. Документацию для Перенаправить. Есть тенденция использовать mod_rewrite для всего в Apache, потому что он делает так много, но это один из тех хороших случаев, когда простой Redirect
делает свою работу.