我遇到麻烦让我的重写规则正常工作..
ErrorDocument 404 /404.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^companies/
RewriteRule ^companies\/\?(.*)([A-Za-z]+) index.php?cpy=$1 [R=301,L,NC]
RewriteRule ^([0-9]+)/?$ index.php?cid=$1 [L]
RewriteRule ^([A-Za-z_]+)/?$ index.php?cat=$1 [L]
重写规则 domain.com/123 domain.com/abc 似乎工作正常,
但另一个我无法上班的是 domain.com/companies/?list=this
似乎apache找不到匹配
RewriteRule ^companies\/\?(.*)([A-Za-z]+) index.php?cpy=$1 [R=301,L,NC]
任何人都可以帮我弄清楚该规则有什么问题吗?或者如果是别的什么?
答案 0 :(得分:0)
RewriteRule
与查询字符串不匹配。
您可以使用RewriteCond
匹配它们,参数化匹配显示为%1, %2
等。
例如
RewriteCond %{QUERY_STRING} ^(.*)([A-Za-z]+)$
RewriteRule ^companies\/ index.php?cpy=%1 [R=301,L,NC]