0

所以很多Web應用程序都在客戶選擇適合自己的子域名,即mycompany.webapp.com子域名URL重寫和Web應用程序

據推測,每個子域工作過的同一組文件和唯一子也許是存儲爲會話對象。那麼URL重寫是如何工作的呢?

如果有人去mycompany.webapp.com,你必須重寫他們的唯一地址爲動態頁面設置會話變量,即webapp.com/mypage.php?cusomer=mycompany

但是當你重定向,你會在webapp.com/theappdirectory/而不是mycompany.webapp.com/

那麼他們如何做到這一點?

運行IIS的PS,但該方法對於任何服務器都應該是相同的。對我們來說最重要的是我們不能做webapp.com/theappdirectory/mycompany/somefile.html,即所有的文件都駐留在一個目錄中,我們必須以某種方式設置會話變量,同時保持子域被屏蔽。

回答

0

重定向可以只在內部發生:

RewriteCond %{HTTP_HOST} ^([^./]+)\.example\.com$ 
RewriteCond %1 !=www 
RewriteRule^mypage.php?customer=%1 

爲了這個工作,你的服務器/虛擬主機需要進行配置,以接受所有子域(例如見Name-based Virtual Host Support)。

+0

這會掩蓋子域嗎?因此,即使您在說webapp.com/theappdirectory/somepage.html 在您看到的其他人身上,您的網絡瀏覽器仍會顯示mycompany.webapp.com/ somepage.html – 2010-05-16 14:29:16

+0

@Igor K:由於重定向只是內部的,所以實際位置不顯示。但是這仍然允許直接請求實際的文件。 – Gumbo 2010-05-16 15:34:32

0

任何網址(包括子網域)使用DNS映射到一個IP地址。

  1. 現在,這些地址可以映射到你的DocumentRoot設置爲任何你想要的網站服務器。

  2. 但是,當多個域/子域託管在同一臺物理機器上時,您的問題是有意義的。如果您使用的是Apache,則可以使用此虛擬主機設置,它可以邏輯地劃分託管在同一臺服務器上的不同域。它基本上映射主機地址(像x.example.com,y.example.com)或IP地址,以該設定的初始參數,如DocumentRoot的,PHPAdmin值的虛擬主機..

退房http://httpd.apache.org/docs/2.0/vhosts/examples.htmlhttp://httpd.apache.org/docs/1.3/vhosts/欲瞭解更多信息

+0

謝謝,但我知道我會爲所有子域指向同一個服務器的通配符,我想知道他們如何都可以共享Web應用程序的同一組文件,同時仍然保持子域被屏蔽。 – 2010-05-16 14:29:58