我正在试图弄清楚为什么这不起作用:
RewriteRule ^search/(.*)-more([0-9]+).html /cgi-bin/search.cgi?bool=and&substring=0&query=$1;nh=$2 [P,L]
RewriteRule ^search/(.*).html /cgi-bin/search.cgi?bool=and&substring=0&query=$1 [P,L]
使用示例:
前2个工作正常 - test
被传递给查询参数。
但是,在第二个问题上 - 它会在%20
处被截止...所以它不是通过test%20extra
,而是通过test
我比较了我在另一台服务器上使用的类似规则,它与(。*)作为选择器工作正常...所以我不确定这里有什么不同!
有什么建议吗?
答案 0 :(得分:0)
唉......我明白了!它想要NC,L而不是P,L作为标志。所以:
RewriteRule ^search/(.*)-more([0-9]+).html /cgi-bin/search.cgi?bool=and&substring=0&query=$1;nh=$2 [P,L]
RewriteRule ^search/(.*).html /cgi-bin/search.cgi?bool=and&substring=0&query=$1 [P,L]
需要:
RewriteRule ^search/(.*)-more([0-9]+).html /cgi-bin/search.cgi?bool=and&substring=0&query=$1;nh=$2 [NE,L]
RewriteRule ^search/(.*).html /cgi-bin/search.cgi?bool=and&substring=0&query=$1 [NE,L]