.htaccess非www到www URL重定向将删除基本URL以外的任何URL路径
当来访者离去时,可以说: http://website.com/dir/dir2/file.html “我的重新写入”会清除基本url之外的路径,并将其重定向到前面有www的主页 http://www.website.com/ 如何防止剥离发生,并将访问者发送到主页而不是他们请求的url?仅供参考,有问题的URL确实存在.htaccess非www到www URL重定向将删除基本URL以外的任何URL路径,url,.htaccess,mod-rewrite,redirect,Url,.htaccess,Mod Rewrite,Redirect,当来访者离去时,可以说: http://website.com/dir/dir2/file.html “我的重新写入”会清除基本url之外的路径,并将其重定向到前面有www的主页 http://www.website.com/ 如何防止剥离发生,并将访问者发送到主页而不是他们请求的url?仅供参考,有问题的URL确实存在 塔克斯 在重写结束时包括文件/路径信息,如下所示: RewriteCond %{HTTP_HOST} !^www\.website\.com [NC] Rewrit
塔克斯 在重写结束时包括文件/路径信息,如下所示:
RewriteCond %{HTTP_HOST} !^www\.website\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://www.website.com/$1 [L,R]
仅供参考,这是一个Magento网站 在.htaccess中,在
#RewriteBase /magento/
在这之后,我把它们放在自己的行上:
RewriteCond %{HTTP_HOST} !^www\.website\.com$ [NC]
RewriteRule ^(.*)$ http://www.website.com/$1 [L,R=301]
它是有效的。有孩子的爸爸也做对了,只是不知道第二行是干什么的。大多数人都需要
RewriteBase
set,所以试试:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} !^(?:www\.your-live-domain\.com|staging\.domain\.com)$ [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule .* http://www.your-live-domain.com/$0 [L,R=301]
使用301将其永久化我在RewriteRule.*index.php[L]之后的重写中删除了它,但它仍然重定向到基本url。这条规则引起了骚动吗?您建议的代码是否应该放在index.php重写规则之前?谢谢这应该永远是你的第一条规则。它是我所有其他规则中最重要的,因为它需要放在第一位。一旦站点重定向到完全限定的域,第一条规则中的条件将不再满足,因此它将被绕过,您的其余规则将生效。Rick,对于您下面的回答(因为我无法对此发表评论),我实际上不记得第二行是什么意思。正如您所建议的,它可能是可选的。按照正则表达式的读取方式,它正在寻找一个非空的HTTP_主机——我不确定该条件何时为真。我只知道这组3行代码在我管理的许多网站上运行得很好,已经好几年了。谢谢你的反馈,DWK!干杯,瑞克……不,他没有!第一行的美元也很便宜!