开发者

RewriteRule that preserves GET parameters

What is wrong with this rewrite rule?

Rew开发者_JS百科riteRule ^api/(.+)$ api/index.php?url=$1 [L]

I simply want "index.php?url=" to be added after api/ and before the rest of the get parameters.

api/image/upload&arg1=1&text=lorem+ipsum

to

api/index.php?url=image/upload&arg1=1&text=lorem+ipsum

What is wrong with (.+) to get everything after api/?


The regex on the RewriteRule is only run against the path part of the URL, not the query parameters. Fortunately there is the [QSA] flag to preserve existing query parameters.


Are you doing something to stop infinite recursion?

 RewriteRule ^api/(.+)$ api/index.php?url=$1 [R=301,L]

or some equivalent


I think you must write your domain name before the regex stuff. Like this:

RewriteRule ^(.+).com/api/(.*)$ "$1.com/api/index.php?url=$2" [R=301,L]
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜