Nginx用变量重写规则

时间:2013-12-15 15:58:54

标签: apache nginx rewrite

我想将来自子域的所有请求发送到index.php并将子域名发送为$sub

例如:

sub1.mydomain.com
send the above request to:
/var/www/mydomain/index.php?sub=sub1

我尝试了什么:

rewrite ^(\w+).mydomain.com /index.php?sub=$1 last;
root /var/www/mydomain/;

1 个答案:

答案 0 :(得分:0)

重写在请求URI中完成。这不包含主机名。为变量sub分配一个默认值,然后使用id语句捕获替换默认值的子域。然后使用无条件重写。

$sub=www;
if($host ~ ^(\w+\.example.com$) {
    $sub = $1;
}
rewrite ^.*$ /index.php?sub=$sub$args;

从我的头顶。使用相关文档进行调整。