Htaccess重写规则不匹配



我有一个问题,因为我换了主机。新的主机包有一个简单的规则问题,这个规则在完美之前是工作的。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
# NOT MATCHING
RewriteRule ^pro/(.*)/(.*)/$ pro.php?id=$1&p=$2 [QSA,L]
# MATCHING
RewriteRule ^(.*)/(.*)/$ pro.php?id=$1&p=$2 [QSA,L]

当我调用f。"www.example.com/pro/350/658a/"第一条规则不是匹配,而是第二条。有没有人知道为什么它不能在新的主机包上工作?

.*几乎匹配所有内容。试试这些规则:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# NOT MATCHING
RewriteRule ^pro/([^/]+)/([^/]+)/?$ pro.php?id=$1&p=$2 [QSA,L]
# MATCHING
RewriteRule ^([^/]+)/([^/]+)/?$ pro.php?id=$1&p=$2 [QSA,L]

最新更新