我有以下重写规则:

RewriteRule ^([a-zA-Z0-9]*)/([a-zA-Z0-9]*)\\.php\?(.*)  /$2.php?shop=$1&$3 [NC,L]
RewriteRule ^([a-zA-Z0-9]*)/([a-zA-Z0-9]*)\\.php        /$2.php?shop=$1 [NC,L] 
RewriteRule ^([a-zA-Z0-9]*)/$  /index.php?shop=$1 [L,NC] 
RewriteRule ^([a-zA-Z0-9]*)$   /index.php?shop=$1 [L,NC] 

结果 应该 重定向以下方面:

www.site.com/Sells 
    -> /index.php?shop=Sells [works] 

www.site.com/Sells/menu.php?Cat=1 
    -> /menu.php?shop=Sells&Cat=1 [failing] 
    -> /menu.php?shop=Sells [which is 'wrong'] 

最后一个示例 应该 通过重写[1] ...匹配

我已经用ape运送的正则测试仪测试了规则,发现逃脱了 ?. 似乎不起作用。我有点疲惫不堪,会欣赏任何能够阐明这种逃脱行之异的人。

提前感谢。

有帮助吗?

解决方案 3

QSA国旗失踪了!它附加了查询字符串,我忘了放入!!!

我添加为预览的双重斜线没有显示单个斜线!

其他提示

RewriteRule ^([a-zA-Z0-9]*)/([a-zA-Z0-9]*)\\.php\?(.*)  /$2.php?shop=$1&$3 [NC,L]
RewriteRule ^([a-zA-Z0-9]*)/([a-zA-Z0-9]*)\\.php        /$2.php?shop=$1 [NC,L] 

逃脱太多。改变 \\.php\.php.

您似乎逃脱了旨在逃脱的。 (您有。读为和任何字母/符号)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top