我正在使用以下mod_rewrite规则来进行当前重定向。但我真正想要实现的是两个url都能正常工作:
请求的网址示例:http://sandbox.local/services/userdetails/get.json?username=beebee&ugc_token=abcdef
重写网址:http://sandbox.local/services/userdetails/username/beebee.json?ugc_token=abcdef
重写规则:
RewriteCond %{QUERY_STRING} (username|uid)=([^&]+)&(.*)
RewriteRule ^services/userdetails/get.json$ /services/userdetails/%1/%2.json?%3 [NE,L,R=301]
以上规则有效,但会重定向用户。如果我删除R=301
然后规则停止运行,我只会得到一个404页面。有没有办法保留相同的请求URL,而不是301重定向?
答案 0 :(得分:0)
我忘了提到我正在使用Drupal。
因为我正在使用Drupal,所以我需要更改我的RewriteRule
,以便它实际将请求发送到index.php
并解决了问题:
RewriteCond %{QUERY_STRING} (username|uid)=([^&]+)&(.*)
RewriteRule ^services/userdetails/get.json$ index.php?q=services/userdetails/%1/%2.json&%3 [NE,L]