.htaccess Htaccess重写规则-编码的斜杠不匹配

.htaccess Htaccess重写规则-编码的斜杠不匹配,.htaccess,.htaccess,我有一个简单的访问规则: RewriteRule ^user_id=([0-9]+)/track/(.*)/save.js$ index.php?uid=$1&type=js&params=$2 [L] 我的url看起来像: mysite.com/user_id=12345/track/param1/param2/param3/save.js param1、param2、param3作为save.js中由“/”分解的3个不同参数传递给save.js 我想传递一些值中有“/”的参

我有一个简单的访问规则:

RewriteRule ^user_id=([0-9]+)/track/(.*)/save.js$ index.php?uid=$1&type=js&params=$2 [L]
我的url看起来像: mysite.com/user_id=12345/track/param1/param2/param3/save.js

param1、param2、param3作为save.js中由“/”分解的3个不同参数传递给save.js

我想传递一些值中有“/”的参数,所以我有param1、param/2和param3 我尝试对该参数进行编码,使url看起来像:

mysite.com/user_id=12345/track/param1/param%2f2/param3/save.js

不幸的是,规则不匹配,我从Apache获得了404

编辑: 找到了它不适合我的原因:

用户id=12345在url内做什么?为什么不简单地说mysite.com/12345/track/param1/param2/param3/save.js,因为应该清楚的是,它是该位置的用户id?或者,如果您确实需要该标记,则将其设置为mysite.com/user/12345/track/param1/param2/param3/save.js您的两个URL都将根据给定的规则进行匹配。你还有其他规则吗?@anubhava我已经评论了所有其他规则来测试这个规则。第二个url仍然不匹配。当我在Apache上使用它时,它确实匹配。如果不工作,请尝试以下操作:RewriteRule^user_id=[0-9]+/track/+?/save\.js$index.php?uid=$1&type=js¶ms=$2[L,B]