2014-11-05 90 views
0

我在Apache上有一個php web應用程序,它支持查詢字符串中由dist_id標識的多個用戶。所以https://main.com/login?dist_id=21表示從https://main.com/login?dist_id=26一個站點的自定義域名

一個不同風格的網頁我想要做的就是爲每個用戶註冊一個域名,並保持清潔的網址,這樣https://brandx.com/login無形指向https://main.com/login?dist_id=21。登錄後,我不再需要dist_id,但我想保留用戶的域名,以便https://brandx.com/products?show=1等仍然有效。

這是可能的,什麼是最好的方式來做到這一點(PHP中的mod_write,DNS)?

注意我已經有一個重寫規則來添加index.php,它是所有請求的入口點。

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php [QSA,L] 

我想我已經得到了親近:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?dist_id=26 [QSA,L] 

在此登錄後,系統的工作原理:https://brandx.com/categories但是這給一個404錯誤:https://brandx.com/categories?parent_id=12329

+1

我不知道如何解決這個問題,但我可以問你爲什麼這樣做?僅僅爲多個域設置apache不是很容易嗎? – icecub 2014-11-05 18:39:43

回答

1

想必所有這些 「地王」 會共享相同的URL結構(減去查詢參數)?在這種情況下,爲您的main.com網站設置定義可能最爲簡單,然後將所有brandx.com網域添加爲別名,例如,

<virtualhost *:80> 
    ServerName main.com 
    ServerAlias brandx.com brandy.com brandz.com etc... 
</virtualhost> 

然後你使用mod_rewrite測試HTTP「主持人:'頭,查看用戶在進行該域名,並酌情重新寫。

+0

這幾乎是我的想法,但當談到mod_write時,我是個白癡。主機測試和重寫規則是什麼樣子? – Rooster242 2014-11-05 19:05:33

+0

http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritecond顯示您可以測試的變量,包括http_host – 2014-11-05 19:07:24