2012-02-19 94 views
-2

我有一個通過mydomain.com/admin.php正常訪問有一個管理頁面的網站(例如admin.php的)隱藏管理頁面的子域

什麼,我希望能夠做的是使用htaccess以這樣的方式將 「admin.mydomain.com」映射到「mydomain.com/admin.php」,使得用戶永遠不會知道它是'文件'。

也就是說,如果有人試圖從外部訪問「mydomain.com/admin.php」,我希望它404

現在,對於甚至很難部分:admin.php的網頁將要服務鏈接作爲「/admin.php?param=value」等,所以我需要看看引用(???),讓這個按預期工作。

可以htaccess做到這一點嗎?任何想法從哪裏開始?

回答

1

如果您已設置了一項紀錄admin.mydomain.com具有相同的IP地址mydomain.com以及同DocumentRoot

那麼這可以這樣做在你的.htaccess:

RewriteEngine On 
RewriteBase/

RewriteCond %{ENV:REDIRECT_STATUS} 200 
RewriteRule^- [L] 

RewriteCond %{HTTP_HOST} ^(admin\.) [NC] 
RewriteRule^%1php [L] 

RewriteCond %{REQUEST_URI} admin\.php$ [NC] 
RewriteRule^- [R=404,L] 
0

我真的不明白你想要做什麼(或者真的爲什麼你絕對需要有頁面mydomain.com/admin.php)。

如果您試圖從用戶處「隱藏」它,爲什麼不實際創建一個子域,將該文件放在子域中,在整個子域中實現安全性,然後不需要重定向,引用者或查詢字符串。

爲了安全起見,你可能想要做像this

在你的.htaccess放:

AuthUserFile /path/to/htpasswd/file/.htpasswd 
AuthGroupFile /dev/null 
AuthName "MyDomain Admin Area" 
AuthType Basic 
require valid-user 

創建文件中使用htpasswd的發電機如this

然後你會沒有必要隱藏用戶的頁面,因爲沒有正確的用戶名和密碼,他們將得到一個403.

+0

該文件的原因不能在其他地方是我使用第三方CMS,我需要複製安裝...這可能由於授權而不可能實現。 – cmroanirgo 2012-02-19 06:17:32