mod_rewrite-从路径设置_GET变量


mod_rewrite - set _GET var from path

如何从路径设置_GET变量?

.htaccess

RewriteCond %{HTTP_HOST}        ^api'. [NC]
RewriteCond %{REQUEST_URI}      !^/_api/([^/]+/)?([^/]+/)? [NC]
RewriteRule ^(.*)$              /_api/?v=%1&k=%2 [L]

URL

http://api.domain.com/get_var1/get_var2/

代码

echo "_GET'n";
print_r($_GET);

结果

_GET
Array
(
    [v] => 
)
(
    [k] => 
)

结果应该是什么

_GET
Array
(
    [v] => get_var1
)
(
    [k] => get_var2
)

对于类型为的URL

http://api.domain.com/get_var1/get_var2/

这样做:

RewriteCond %{HTTP_HOST}        ^api'. [NC]
RewriteCond %{REQUEST_URI}      !^/_api/
RewriteRule ^([^/]+)/([^/])/$   /_api/?v=$1&k=$2 [L]

更改:

RewriteRule ^(.*)$              /_api/?v=%1 [L]

至:

RewriteRule ^(.*)$              /_api/?v=$1 [L]

实际上,%1是由RewriteCond指令生成的变量,而不是RewriteRule one