我想将现有域名重定向到新域名(机器人站点结构相同)我试过跟随.htaccess
RewriteEngine on
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]
我的问题是,如果我尝试
olddomain.com/login.php
重定向到
newdomain.com/public_html/login.php
哪个无法正常工作..任何人都可以帮忙修复它。
(注意:如果我只尝试使用域名,则会完全重定向到新域名)
答案 0 :(得分:3)
只需将新域指向站点根文件夹,而不是服务器根文件夹。
答案 1 :(得分:2)
然后你可以使用这个RewriteRule
指令:
RewriteRule ^public_html/(.*)$ http://www.newdomain.com/$1 [R=301,L]
除了" public_html /" 之外,它只会反向引用正则表达式(.*)
。
很高兴看到解决您问题的完整指令。无论如何,您可以通过替换以下3行来改进和优化它们:
RewriteCond %{HTTP_HOST} ^olddomain\.tld$ [OR]
RewriteCond %{HTTP_HOST} ^www\.olddomain\.tld$
RewriteRule ^(.*)$ "http\:\/\/www\.newdomain\.tld\/$1" [R=301,L]
这两行:
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.tld$
RewriteRule ^(.*)$ http://www.newdomain.tld/$1 [R=301,L]
在我看来,这是写它们的完美方式..
答案 2 :(得分:1)
在与服务提供商讨论后,根据他们的指示我使用了以下代码,它完美地工作(根据他们的虚拟专用服务器的信息是特殊情况)
感谢所有努力解决我的问题的人
RewriteEngine on
RewriteOptions inherit
RewriteCond %{HTTP_HOST} ^olddomain\.tld$ [OR]
RewriteCond %{HTTP_HOST} ^www\.olddomain\.tld$
RewriteRule ^(.*)$ "http\:\/\/www\.newdomain\.tld\/$1" [R=301,L]