我尝试使用Nginx设置子域名,但是我收到了一些错误。以下是我的配置:
server {
listen 80;
server_name dimain.com *.domain.com;
root /path/to/fuelphp_project/public;
location / {
index index.php index.html index.htm;
if ($host ~ (.*)\.(.*) ) {
set $sub_name $1;
rewrite ^/(.*)$ /index.php/$sub_name/$1 last;
break;
}
if (!-e $request_filename) {
rewrite ^.*$ /index.php last;
break;
}
}
...
}
我希望结果如下:
sub1.domain.com/c1/a1 -> domain.com/sub1/c1/a1
sub2.domain.com/c2/a2 -> domain.com/sub2/c2/a2
如何纠正?
答案 0 :(得分:0)
server {
server_name sub1.domain.com;
return 301 "http://domain.com/sub1${uri}";
}
这对你有用吗?
我刚刚在这里注意到了答案:https://serverfault.com/questions/426673/nginx-redirect-subdomain-to-sub-directory
server {
server_name ~^(?<sub>[a-zA-Z0-9-]+)\.domain\.com$; # will cause the sub-domain to be placed in $sub
return 301 "http://domain.com/${sub}${uri}";
}
我认为正则表达式也可以是一个非常酷的解决方案......取决于你需要的东西。