2011-03-04 34 views
1

今天IM與PHP領域打,使用php進行域映射?

例如

www.wordpress.com is our main site 
www.friend1.com is my new domain 
www.friend2.com is my new domain 
www.friend3.com is my new domain 

www.friend1.com the same as www.wordpress.com/profile/friend1 ? 
www.friend2.com the same as www.wordpress.com/profile/friend3 ? 
www.friend3.com the same as www.wordpress.com/profile/friend2 ? 

如何WordPress的,等做這樣的事情?他們是否在服務器端這樣做? 還是有辦法做這樣的東西在PHP?

*編輯 如果你還是不明白,

繼承人的例子。可以說你在myfrienddeviantartid.devaintart.com有一個朋友deviantart ID,並且可以說你是deviantart的管理員。你想做一個插件服務,你的朋友可以把他自己的域名放入deviantart.com。

回答

0

傳統上,這是在Apache的配置中使用mod_rewrite完成的。它重映射URL。

+0

啊,我的想法是太多,但我只是不能認爲他們會怎麼用期運用mod_rewrite是通過阿帕奇管理諸多領域。 – 2011-03-04 18:43:15

+0

那麼,規則是使用perl兼容的正則表達式配置的,所以你不必定義每個可能的URL場景。例如,要從「www.friend3.com」中抓取「friend3」,您可以使用正則表達式「\。(\ w)\」。並將匹配結果放入新的重寫的URL中。正則表達式可能比這更復雜,你必須明確地測試它;但你明白了。 – Jeff 2011-03-04 21:13:02

+0

nope,我想使用數據庫,首先我看到他從哪裏去,如果域名是在domains.url1.com(ns配置是對的),我們只需要將www.url2.com重定向到www.url1 .com /目的地使用$ _SERVER ['HTTP_HOST'],那麼如果與domains.url1.com不同,它將重定向到字段中的正確url(從數據庫中提取) – 2011-03-05 11:58:05

0
  • 爲Apache HTTP服務器,它使用ProxyPassReverse指令從mod_proxy模塊或指令從mod_rewrite的

該指令ProxyPassReverse使Apache調整的URL在 Location頭對HTTP重定向響應。例如,當Apache用作反向代理時,必須使用 ,以避免逆向代理繞過 ,因爲在後端服務器 上的HTTP重定向會停留在反向代理之後。

假設本地服務器的地址爲http://wibble.org/;然後

的ProxyPass /鏡/富/ http://foo.com/
ProxyPassReverse /鏡/富/ http://foo.com/

不僅會造成對 http://wibble.org/mirror/foo/bar的本地請求被內部轉換成 代理請求http://foo.com/bar(功能ProxyPass 在這裏提供)。它也負責重定向服務器foo.com 發送:當http://foo.com/bar是由他重定向到 http://foo.com/quux阿帕奇轉發HTTP重定向 響應到客戶端之前調整這 http://wibble.org/mirror/foo/quux

  • 對於MS(R)IIS使用重新寫模塊:

輕鬆替代的Web應用程序的URL,以產生用戶和搜索引擎>友好的結果。 URL重寫允許Web管理員輕鬆地將響應HTML中由Web應用程序生成的URL>替換爲更友好的用戶界面和搜索引擎友好的等效項。可以在逆向代理背後的Web應用程序生成的HTML標記中修改鏈接。URL重寫使出站響應內容和頭部重寫變得更加容易,出站重寫規則可與HTTP請求和響應頭以及IIS服務器變量一起工作。

Additionaly,你必須確保子域是設置與DNS提供商通過所有請求主。

DNS記錄樣本:

NAME     TYPE VALUE 
-------------------------------------------------- 
exampleXYZ.com.   CNAME example.com. 
example.com.   A  192.0.2.23 

編號:

  1. https://en.wikipedia.org/wiki/CNAME_record

  2. http://www.akadia.com/services/apache_redirect.html

  3. http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

  4. http://www.iis.net/downloads/microsoft/url-rewrite