2011-10-05 57 views
1

我使用CodeIgniter來構建我的第一個Web應用程序。出於演示目的,用戶可以通過簡單地使用他們的Facebook用戶名作爲參數(使用Graph API中的公共數據)來預覽他們的網站。於是,他們利用訪問他們的數據:CodeIgniter網絡應用中的自定義域名?

myurl.com/controller/function/**username** 

但是在未來我希望用戶能夠使用他們的自定義域,查看類似的頁面。

我已經讀過這個話題,但他們似乎並沒有達成一致的解決方案。有人說我需要在.htaccess中使用mod_rewrite,有的建議使用virtual hosts,有的提到玩$_SERVER請求重定向用戶。似乎有很多的建議,但沒有太多的例子來幫助決定。

我很樂意手動設置每個域(即通過手工編輯.htaccess),但我仍然希望能夠使用單個CodeIgniter安裝。

那麼,我該如何將多個URL /自定義域指向一個CodeIgniter URL,並且存在哪些安全隱患?

可能的相關link

+2

你問子域(通過'http:// username.example.com /')或多個網址('HTTP:// user-purchased-domain.com /')? – birderic

+0

抱歉 - 多個網址 –

回答

0

你說的是什麼版本的笨嗎?

我可能會走虛擬主機的路線說實話。您可以嘗試設置通配符虛擬主機,以便如果未在您的服務器上設置被叫域,它將默認爲CodeIgniter應用程序。

這將是動態的,因爲您所做的只是爲客戶端設置DNS域指向您的服務器,他們將全部獲得CI應用程序的一個實例。雖然這並不安全。

我建議有一個CI函數,在主要CodeIgniter應用程序啓動之前,所有域都要發送到該函數。然後,該中介將查找數據庫表以查看被調用的域是否爲允許的域。如果沒有重定向,如果它然後加載主CI配置程序。

這應該適用於CI 2.x,因爲它可以自動檢測域,因此您不需要在配置文件中進行硬編碼。

對於CI 1.6.x,您必須將應用程序URL硬編碼到配置文件中。如果這是你的版本,你可能需要升級或修改應用程序。

HTH :)

+0

絕對是第2版。我很欣賞這個迴應。你提到的是什麼讓這種不安全?我試圖停止發生什麼? –

+1

好吧,如果您沒有付款,其他人可以將他們的域名指向您的服務。然後,他們可以在他們的域名下顯示您的應用程序.. 或者,也許多數民衆贊成你在找什麼。我的印象是你想要的,但也想驗證顯示你的應用程序的域? – conor

+0

你假設正確,我只是不確定安全問題到底是什麼。 –