2012-03-19 17 views
0

我希望得到關於如何限制用戶訪問子域名的建議。
子域只能用有效$_GET PARAM進行訪問,就像www.domain.com/index.php?mykey=12345如何限制用戶訪問子域名

我有一個Yii的後端控制這些鍵,但無法找到限制訪問的好方法。我已經試過了.htaccess規則將所有流量傳遞到index.php文件,然後做在後端控制器類似

file_get_contents('/var/www/'. $requested_file) ; 
RewriteRule ^(.*)$ http://www.domain.com/index.php/$1 

明顯的安全風險,我知道。它的工作類型,但有圖像的問題,因爲它通過所有的流量f_g_c().

希望有一個更直接的方式做到這一點。

編輯:理想情況下,我不想讓後端對用戶可見。因此,爲什麼我不使用明顯簡單的方法。

回答

0

(假設你使用Apache)

如果你希望它忽略的圖像,所以它看起來是這樣的,你可以添加一些條件,您的規則:

RewriteCond %{REQUEST_URI} !\.(png|jpe?g|gif|js)$ [NC] 
RewriteRule ^(.*)$ http://www.domain.com/index.php/$1 

這使得所以如果請求的URI具有特定的擴展名,則該規則將不會被應用。此外,當您的RewriteRule的目標以http://開頭時,它固有地重定向瀏覽器,而不是在內部重寫URI。這意味着當有人在其瀏覽器的URL地址欄中輸入http://www.domain.com/some-path時,它將被重定向,其地址欄現在表示http://www.domain.com/index.php/some-path。如果刪除域位,它將被內部重寫(條件是防止循環):

RewriteCond %{REQUEST_URI} !^/index.php 
RewriteRule ^(.*)$ /index.php/$1 [L]