我有一个问题,因为我改变了我的托管。新的托管包存在一个简单规则的问题,它在完美之前有效。
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.e. "的 www.example.com/pro/350/658a / "第一条规则不是加工而是第二条规则。 Doe有人知道为什么它没有在新的托管包上工作?
答案 0 :(得分:0)
.*
几乎匹配所有内容。试试这些规则:
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]