<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^browse/videos/(.*)/(.*)/(.*)/(.*) /videos.php?sortby=$1&filter=$2&page=$3&title=$4
RewriteRule ^videos/(.*)/(.*) /playvideo.php?videoid=$1&title=$2
</IfModule>
url www.example.com/browse/videos/z/0/1/LastAdded转到videos.php
但是网址www.exaple.com/videos/10/play.html也会转到videos.php而不是playvideo.php
为什么?
答案 0 :(得分:0)
不确定为什么会发生这种情况,但无论如何你应该使用这样的东西。
RewriteRule ^browse/videos/(.+)/(.+)/(.+)/(.+) /videos.php?sortby=$1&filter=$2&page=$3&title=$4 [L]
RewriteRule ^videos/(.+)/(.+) /playvideo.php?videoid=$1&title=$2 [L]
答案 1 :(得分:0)
这可能是由MultiViews引起的。尝试使用以下命令禁用它:
Options -MultiViews
此外,您应使用比.*
更具体的模式,例如[^/]+
:
RewriteRule ^browse/videos/([^/]+)/([^/]+)/([^/]+)/([^/]+)$ /videos.php?sortby=$1&filter=$2&page=$3&title=$4
RewriteRule ^videos/([^/]+)/([^/]+)$ /playvideo.php?videoid=$1&title=$2
答案 2 :(得分:0)
它对我有用。要找出它不适合您的原因,您应该启用mod_rewrite logging:
RewriteLogLevel 9
RewriteLog logs/rewrite.log
然后你应该试着去理解那里写的是什么。如果您不理解,请在此处发布,我们将尝试解释它。