RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)\.html$ product.php?pid=$1&rewrite=1&%{QUERY_STRING} [L,QSA,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)\.html$ product2.php?cid=$1&rewrite=1&%{QUERY_STRING} [L,QSA,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)\.html$ product3.php?bid=$1&rewrite=1&%{QUERY_STRING} [L,QSA,NC]
无法访问product2.php或product3.php文件...
请帮忙......
答案 0 :(得分:0)
您的所有RewriteRule
正则表达式都是相同的,因此它只会在第一次匹配时将URL转换为product.php?pid=$1&rewrite=1&%{QUERY_STRING} [L,QSA,NC]
,然后不执行任何操作(L
标志指定它将不再匹配该运行的任何规则,然后在将URL重写为product.php
后,product.php
将无法与下一次传递中的任何其他规则匹配。
此外,如果您传递&%{QUERY_STRING}
标记,则无需添加QSA
,因为这会自动将查询字符串附加到从RewriteRule
获取的已修改查询字符串。
我知道您希望它能够访问其他两个页面,但您需要描述哪些输入网址应映射到每个特定文件,以便任何人能够为您提供更多帮助。