I am trying to redirect URLs at my old WordPress domain to the same URL structure but at my new domain.
So for example:
oldsite.com/post-name-1
would redirect to newsite.com/post-name-1
oldsite.com/post-name-2
would redirect to newsite.com/post-name-2
... and so on.
I have tried adding the following to the .htaccess
file under my old domain:
RewriteRule ^/(.*)$ https://newsite.com/$1 [R=301,L]
What rule do I need to write into my .htaccess
file to achieve this?
Redirect 301 / https://newsite.com/
См. Документацию по Перенаправление . Есть тенденция использовать mod_rewrite для всего в Apache, потому что он так много делает, но это один из тех хороших случаев, когда простое Redirect
выполняет свою работу.
RewriteRule ^ / (. *) $ Https://newsite.com/$1 [R = 301, L]
Это никогда не будет работать в контексте файла для каталога .htaccess
из-за префикса косой черты в шаблоне RewriteRule
. В контексте каталога (или .htaccess
) префикс каталога (который, в частности, заканчивается косой чертой) сначала удаляется из URL-пути до того, как происходит сопоставление с шаблоном, поэтому сопоставленный URL -path никогда не начинается с косой черты . В нынешнем виде эта директива предназначена для использования в контексте сервера или виртуального хоста .
В .htaccess
вам необходимо удалить префикс косой черты (или сделайте это необязательным):
RewriteRule ^(.*)$ https://newsite.com/$1 [R=301,L]
Однако предоставление oldsite.com
и newsite.com
в настоящее время указывает на разные хосты, а директивы WordPress .htaccess
имеют был удален с oldsite.com
, то вам следует реализовать безусловное перенаправление
, как предлагает @AndrewSchulman.