2013-11-14 41 views
1

请帮我解决这个问题。这是我的htaccess规则:为什么我的正则表达式与此不符?

RewriteCond %{REQUEST_METHOD} ^(GET) 
RewriteRule ^ws/([^/]+)/([^/]+)/([A-Za-z]+)(&.+)?$ index.php?module=ws&wsType=$1&wsRessource=$2&wsAction=$3$4 [L,QSA] 

这是我想匹配

ws/rest/user/get&criteria%5Befezf%5D=%2Ftot%2F&output=dump&compress=&session_id=cb932jrjakosubljl16loecbl1&api_key=a94a8fe5ccb19ba61c4c0873d391e987982fbbd3

的问题是围绕%2Ftot%2F什么。如果我删除%2F(这是一个斜线/),重写规则工作

+0

你确定这应该是“&”之后的“&”吗?而不是'?'? –

+0

是的,我确定我尝试了两个'&' –

回答

3

添加[B]标志,[L,QSA,B],或添加

AllowEncodedSlashes On 

到Apache,或者使用%252F代替%2F

+0

,但是在添加这两个之后,我得到了“内部服务器错误”。有什么不对吗? –

+0

它通过替换'%252F'工作,但以前的方法不起作用。 –

相关问题