0

我有以下重写规则:

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'] 

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

我已经用 ape 附带的正则表达式测试器测试了规则,发现转义?并且.似乎不起作用。我有点摸不着头脑,如果有人能阐明为什么这种转义不起作用,我将不胜感激。

提前致谢。

4

3 回答 3

1
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

于 2010-11-10T23:01:33.077 回答
0

QSA 标志丢失!它附加了查询字符串,我忘了把它放进去!!!

我作为预览添加的双斜杠没有显示单斜杠!

于 2010-11-24T11:12:34.393 回答
0

您似乎逃避了旨在逃避 . (你有 \. 读作 \ 和任何字母/符号)

于 2010-11-10T23:03:22.830 回答