子域使用NGINX和Codeigniter
问题描述:
我想在我的网站上有各种子域名,例如:biology.mysite.com
。子域使用NGINX和Codeigniter
目前我在我的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。
所以我换成下面的代码上面的基础上this gist但它没有任何效果(意指向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我使用笨框架(其中有一个独特的路由方案),因此,答案可能涉及NGINX和笨的知识。
答
我相信你最后重写应该看上去象下面这样:
rewrite ^/(.+)$ /index.php/tags/$tagname$1 last;
UPDATE: 如果要重定向像subdomain.mysite.com请求(不URI部分)标签控制器和使用域法你应该改变以下
rewrite ^/$ /index.php/tags/index/ last;
线
rewrite ^/$ /index.php/tags/$tagname/ last;
lynxluna的nginx配置和注释中提到的要点是错误的。
+0
- @亚历山大谢谢,不幸的是,不幸的是.. – 2013-03-11 22:00:02
您可能需要等一会儿。有时服务器需要时间来调整其设置。 – shnisaka 2013-03-07 02:42:21
@shnisaka谢谢是的,我已经等了大约30分钟了,同样,第一个代码块的作品表明,等待不太可能是问题。 – 2013-03-07 02:46:21
@shnisaka :)哈哈... timpeterson你使用nginx作为独立还是作为apache的代理? – ddjikic 2013-03-07 09:16:53