Mod重写规则不会转义正斜杠

时间:2017-10-31 20:07:34

标签: apache .htaccess mod-rewrite

我想重定向以下示例网址:

coord_flip()

对此:

geom_vline(xintercept=236, color="#000000", linetype="solid") +

所以我有两个参数http://example.com/?search=iphone&page=2 http://example.com/search/iphone/2

search参数可以是任何字符和 page参数可以是大于search

的任何整数

我的htaccess中有以下规则来实现上述目标:

page

当我打印0参数值时,我得到以下内容: RewriteRule ^search/(.*)$ /?search=$1 [L] RewriteRule ^search/(.*)/([1-9][0-9]*)$ /?search=$1&page=$2 [L]

当我打印search参数值时,我什么都没得到。

所以,似乎正斜线没有逃脱,但不确定是否是原因。

1 个答案:

答案 0 :(得分:2)

撤消您的规则顺序,以便首先显示更具体的模式,更重要的是避免使用.*,因为它匹配所有内容:

RewriteRule ^search/([^/]+)/([1-9][0-9]*)/?$ /?search=$1&page=$2 [L,QSA,NC]

RewriteRule ^search/([^/]+)/?$ /?search=$1 [L,QSA,NC]