mod_rewrite - 从路径设置_GET var

时间:2012-02-28 17:40:12

标签: php mod-rewrite

如何从路径设置_GET var?

的.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
)

2 个答案:

答案 0 :(得分:2)

表示类型为:

的网址
http://api.domain.com/get_var1/get_var2/

这样做:

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

答案 1 :(得分:0)

改变:

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

到:

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

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