2011-03-01 63 views
0

我需要在url中使用動態子域。 我的PHP應用程序將爲用戶開放帳戶。如何通過PHP中的HTACCESS文件獲取動態URL?

我的登錄畫面URL將

http://example.dev/app/login 

在登錄後,用戶會去下一節

http://example.dev/app/section/account_name=ram 

我現在域example.dev

我的要求將域名中的帳戶名稱。我的URL應該像下面

http://ram.exmaple.dev/app/section 

同樣,如果我的帳戶名是孫大信手段,我的網址應該是這樣的

http://sundar.example.dev/app/section 

我知道這是可能使用的.htaccess。我試過,但我不能正確地得到它

的RewriteCond%{HTTP_HOST} ^([AZ - ] +)(。*)example.dev $ [NC]

重寫規則$ /應用/部分/?account_name =%1 [QSA]

以上是正確的嗎?

重要點: 在htaccess的結尾,我必須調用一個控制器文件。

重寫規則^(。*)$ example_controller.php

回答

1

我知道你想在example_controller.php沒有cahnge可言。

PHP訪問原始URL:$ _SERVER [「REDIRECT_URL」]它將包含原始請求地址,而不是「最後一個」請求地址。

我能想到的唯一解決方案是反向代理。您可以使用.htaccess創建代理請求(使用[P]指令)到您自己的主機以獲得所需的URL。這樣PHP將會看到該URL爲REDIRECT_URL,因爲這是請求的原始URL。

RewriteCond %{HTTP_HOST} ^([a-z-]+).example.dev$ [NC] 
RewriteRule (.*)$ http://example.dev/app/section/?account_name=%1[PQSA] 

RewriteRule ^(.*)$ example_controller.php 

當然你必須啓用mod_proxy。我不確定P和QSA指令如何工作,請嘗試一下。

+0

你能舉出這個代理請求的例子嗎? – mosivagan 2011-03-02 07:51:34

+0

是的,我加了一個(雖然沒有測試過)。 – vbence 2011-03-02 11:36:42

相關問題