.htaccess 添加301重定向以将所有流量从一个域重定向到另一个域

mzillmmw  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(120)

有人能帮忙吗?
我正在尝试使用.htaccess将旧域(包含多个子域和URL)的所有流量重定向到新域。我只想将所有现有链接(旧域)的流量重定向到新域的英语子目录。
我想知道这条线对不对?

RewriteEngine On
RewriteCond %{HTTP_HOST} ^olddomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.olddomain.com$
RewriteRule ^(.*)$ http://newdomain.com/en [R=301,L]
h9vpoimq

h9vpoimq1#

您实现的规则是“正确的”,因为它应该工作 * 如果满足一些先决条件 * ...
不过,我想把它简化一点:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(\w+\.)?olddomain\.com$
RewriteRule ^ https://newdomain.com/en [R=301,L]

如果旧域和新域是从不同的位置甚至不同的系统提供服务的,则可以通过忽略以下条件来进一步简化:

RewriteEngine On
RewriteRule ^ https://newdomain.com/en [R=301,L]

一般来说,这些规则最好在中央http服务器的主机配置中实现。如果您没有访问该配置的权限(请阅读:如果您使用的是廉价的主机提供商),您可以使用 distributed 配置文件(通常称为“.htaccess”)。在这种情况下,您需要启用该功能(请参阅http服务器文档中的AllowOverride指令),并且您需要将该文件放在http hosts DOCUMENT_ROOT文件夹中,并确保http服务器可以读取该文件。
还有一个附言:在你的实现中,你重定向到未加密的http协议。2现在这确实已经过时了,你真的应该使用加密的https协议。3当然,你需要一个有效的证书,但是现在这些都是免费的。

相关问题