Apache 访问规则冲突?

Apache 访问规则冲突?,apache,.htaccess,mod-rewrite,url-rewriting,Apache,.htaccess,Mod Rewrite,Url Rewriting,在.htaccess文件中定义了以下规则 RewriteRule t/([^.]+)/$ /video/tag.php?tag=$1 [QSA] 此规则适用于标记页。当我以http://example.com/video/t/funny/然后,它会显示所有结果,并带有标签 但是当我访问URLhttp://example.com/video/script/common/video.php然后它会显示标签页,其中包含标签公共的搜索标签结果。我认为URL和.htaccess规则之间存在一些冲突 它采

在.htaccess文件中定义了以下规则

RewriteRule t/([^.]+)/$ /video/tag.php?tag=$1 [QSA]
此规则适用于标记页。当我以
http://example.com/video/t/funny/
然后,它会显示所有结果,并带有标签

但是当我访问URL
http://example.com/video/script/common/video.php
然后它会显示标签页,其中包含标签公共的搜索标签结果。我认为URL和.htaccess规则之间存在一些冲突


它采用
/t/common/
并在此基础上应用htaccess规则。如何解决此问题???

您的重写规则与相关字符串匹配。您希望将其更改为如下所示:

RewriteRule ^/video/t/([^.]+)/$ /video/tag.php?tag=$1 [QSA]
基本上,所发生的事情是,由于您没有指定规则的开始,它匹配url中“script”的结尾,并将其从那里删除

如果需要不太特定的字符串,请尝试以下方法:

RewriteRule /t/([^.]+)/$ /video/tag.php?tag=$1 [QSA]

当我在文件夹
video
的.htaccess文件中添加
RewriteRule^/video/t/([^.]+)/$/video/tag.php?tag=$1[QSA]
rul时,它会给我404页未找到错误?然后尝试其他规则。我提出的第一条规则在您的域的根目录中最有效。是的,第一条规则在ma应用程序的根目录中最有效。但是为了在我的视频文件夹的htaccess中使用该规则,我添加了
RewriteRule^t/([^.]+)/$/video/tag.php?tag=$1[QSA]
,它对我有效。谢谢