.htaccess 如何在保留路径的同时重定向整个域

9vw9lbht  于 2022-11-25  发布在  其他
关注(0)|答案(3)|浏览(95)

我将一个域重定向到另一个域,但我希望在重定向中保留路径。例如,我想访问www.example.com/services/education/page.html,但重定向会将它们带到www.new-example.com/services/education/page.html。我在.htaccess文件中写什么来保留路径“/services/education/page.html”?
现在我有:

redirect 301 http://www.example.com/ http://www.new-example.com/

但我不确定这是否可行(我还不能测试,因为我正在等待域的详细信息等)。我只是想确定当我把网站活。这是正确的还是我的方式偏离基地?
谢谢你!

41ik7eoe

41ik7eoe1#

这应该可以做到:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !new-example.com$ [NC]
RewriteRule ^(.*)$ http://new-example.com/$1 [L,R=301]
bbmckpt7

bbmckpt72#

尝试将以下内容添加到www.example.com域根目录中的.htaccessexample.com

RewriteEngine On
RewriteBase /

#for all requests to www.example.com
RewriteCond %{HTTP_HOST} ^www\.example\.com$
#redirect them to new-example
RewriteRule (.*) http://www.new-example.com/$1 [R=301,L]
u7up0aaq

u7up0aaq3#

您的原始命令使用了mod_alias Apache模块,它可以正常工作,但您可能需要将其更新为:

Redirect 301 / http://www.new-example.com/

删除当前(旧)域的确切域意味着指向该文件夹的所有域都将发送到新域,从而使该单行脚本更加可靠。
其他答案使用mod_rewrite Apache模块。如果您也安装了该模块,则可以使用,尽管与1行代码相比,它需要4行以上的代码。此外,mod_alias是“基础”包的一部分,因此应该在所有Apache服务器上安装,而mod_rewrite是可选扩展,因此有些服务器可能没有。

相关问题