1

我正在使用以下 mod_rewrite 规则当前重定向。但我真正想要实现的是两个 url 的工作:

请求的 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 重定向?

4

1 回答 1

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]
于 2013-07-10T10:37:10.260 回答