2014-09-22 62 views
0

我必須在某些邏輯上運行多個網站版本。比如說,對於2014年1月以後註冊的所有用戶,我必須展示較新版本的網站,對於較老的用戶,我必須顯示我的網站的舊版本。在一些php邏輯後面運行多個網站版本

Web服務器:用於靜態內容的nginx和用於動態內容的apache。
平臺:php,mysql和linux

對於用戶來我的網站,我必須檢查註冊日期,並相應地將用戶重定向到相應的網站版本。但是我想阻止這種額外的重定向。

使用cookie,代理或其他方法可能會發生同樣的情況嗎?

問題陳述:

我已經改組我的網站。我希望我的翻新網站只會顯示給新的註冊用戶。對於現有的用戶,舊版本將繼續。兩個網站版本的Web根目錄都不相同。

nginx的配置:

server { 
    listen  80; 
    server_name example.com; 
    location/
    { 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_set_header X-FORWARDED_PROTO https; 
     set $cookie_redirect 0; 
     if ($http_cookie ~ 'ver=1') { 
      set $cookie_redirect 1; 
     } 
     if ($cookie_redirect ~ 1) { 
      proxy_pass http://127.0.0.1:6060; 
     } 
     if ($cookie_redirect ~ 0) { 
      proxy_pass http://127.0.0.1:7070; 
     } 
    } 

apache配置:

<VirtualHost *:6060> 
     DocumentRoot /var/www/dir1 
     ServerName example.com 
    </VirtualHost> 
    <VirtualHost *:7070> 
     DocumentRoot /var/www/dir2 
     ServerName example.com 
    </VirtualHost> 

但如果cookie被設置它將工作。對於第一次來的用戶,我必須根據註冊日期設置Cookie。這樣我就可以向新用戶展示改造後的網站。初次使用者可能如何?

+1

你能告訴我們關於這兩個網站應該如何運作的一些事情嗎?頁面之間是否有重疊?他們在不同的目錄?你如何檢查註冊日期?你使用cookies /會話嗎?他們持續多久?等Cookie可能是一種可能性,但我們需要更多關於您網站的信息。 – 2014-09-22 09:46:59

+0

修改後的問題。頁面之間沒有重疊。這兩個版本的Web根目錄是不同的。 – 2014-09-25 11:28:13

回答

0

如果您的網站首先使用了正確的模板引擎,這將不會有太大的問題.. php是後端,因此只需在內容呈現前運行註冊日期檢查,然後相應地顯示內容。這幾乎是任何網站無論如何,以某種方式。

+0

模板只能幫助改變網站的外觀。 Tanu並沒有說它只是網站上的一個不同的皮膚,也許應用程序邏輯也不同。 – symcbean 2014-09-22 10:31:54

+0

然而,這可以用完全相同的方式完成。對不起,如果我的方式太具體了。概念依然存在。 – 2014-09-23 15:54:07