我想在我的网站上有各种子域,例如:biology.mysite.com
.
目前我的 nginx.conf 中有以下内容:
server {
listen 80;
server_name biology.mysite.com;
return 301 https://mysite.com/tags/biology$request_uri;
}
此代码的工作原理是,如果您将浏览器指向biology.mysite.com
,它会重定向到https://mysite.com/tags/biology
并加载正确的生物学内容。
但是,我不想重定向 url,但想将子域保留为 url。
所以我根据这个要点用下面的代码替换了上面的代码,但它没有效果(意味着biology.mysite.com
简单地指向mysite.com
):
if ($host ~* ^www\.([a-z0-9]*)\.(mysite\.com) )
{
set $tagname $1;
set $host_without_www $2;
rewrite ^/(.*)$ $scheme://$tagname.$host_without_www/ permanent;
}
if ($host ~* ^([a-z0-9]+)\.(mysite\.com))
{
set $tagname $1;
set $host_without_www $2;
rewrite ^/$ /index.php/tags/index/ last;
rewrite ^/(.+)$ /index.php/$1 last;
}
想法?
请注意我在此处发布此内容而不是Serverfault的原因是 b/c 我使用的是 Codeigniter 框架(它具有独特的路由方案),因此答案可能涉及 NGINX 和 Codeigniter 的知识。