有人能帮忙吗?
我试图使用.htaccess将所有流量从旧域(具有多个子域和URL)重定向到新域。我只想把所有现有链接(旧域)的流量重定向到新域的英文子目录。
我想知道这句话对不对?
RewriteEngine On
RewriteCond %{HTTP_HOST} ^olddomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.olddomain.com$
RewriteRule ^(.*)$ http://newdomain.com/en [R=301,L]发布于 2022-09-04 06:56:54
您所执行的规则是“正确的”,因为如果满足了某些先决条件,它应该有效.
不过,我会把它简化一点:
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服务器的主机配置中实现。如果您没有访问该文件的权限(请阅读:如果您使用的是廉价的托管提供商),则可以使用分布式配置文件(通常称为".htaccess")。在这种情况下,您需要启用该特性(请参阅http服务器文档中的AllowOverride指令),并且您需要将该文件放置在http DOCUMENT_ROOT文件夹中,并注意它是由http服务器读取的。
另外,还需要注意:在您的实现中,您重定向到未加密的http协议。这已经过时了,你真的应该使用加密的https协议。当然,你需要一个有效的证书,但这些都是免费的。
https://stackoverflow.com/questions/73597209
复制相似问题