2013-03-07 116 views
2

我想在我的網站上有各種子域名,例如: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和笨的知識。

+0

您可能需要等一會兒。有時服務器需要時間來調整其設置。 – shnisaka 2013-03-07 02:42:21

+1

@shnisaka謝謝是的,我已經等了大約30分鐘了,同樣,第一個代碼塊的作品表明,等待不太可能是問題。 – 2013-03-07 02:46:21

+0

@shnisaka :)哈哈... timpeterson你使用nginx作爲獨立還是作爲apache的代理? – ddjikic 2013-03-07 09:16:53

回答

1

我相信你最後重寫應該看上去象下面這樣:

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