.htaccess htaccess重写规则意外重定向www

.htaccess htaccess重写规则意外重定向www,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,在我的htaccess中,我有一条规则- 我有这个规则 RewriteRule ^mk$ http://mysite.com/mypage.php [r=301,nc] 后来: RewriteCond %{HTTP_HOST} !^mysite\.com$ [NC] RewriteRule ^(.*)$ http://mysite.com/$1 [QSA,L,R=301] 这对我来说很好 http://mysite.com/mk -它重定向到: http://mysite.com/mypag

在我的htaccess中,我有一条规则-

我有这个规则

RewriteRule ^mk$ http://mysite.com/mypage.php [r=301,nc]
后来:

RewriteCond %{HTTP_HOST} !^mysite\.com$ [NC]
RewriteRule ^(.*)$ http://mysite.com/$1 [QSA,L,R=301]
这对我来说很好
http://mysite.com/mk

-它重定向到:
http://mysite.com/mypage.php
如我所愿

…但当我去
http://www.mysite.com/mk
它重定向到

这两条规则是不可比拟的吗?谁能告诉我发生了什么事,该怎么办


谢谢

它们是兼容的,但在你的情况下,我认为顺序很重要。我会将主机重定向移到mk重定向之上,然后重试

另一件事是将
L
标志(Last)添加到mk规则中。这将立即触发重定向

我不确定您是否有任何其他规则要先运行。如果这对你很重要的话,看看订单是怎么做的。本质上,这些规则是配对和双重重写
http://www.mysite.com/mk