站內搜尋

Wednesday, September 26, 2012

[架站][PHP] 針對特定網站(或網站下的特定資料夾),透過.htaccess進行特別設定

利用Apache架站當要修改一些網站設定時,我們知道要去php.ini進行修改,一但修改後,所有的網站及網頁都會受到影響。
如果今天我們只想要針對特定網站,或是特定網站下的特定資料夾,進行特別的設定,舉例來說:如果網站有做管理後台,而管理後台我們只希望開放給特定網段(或IP)或需輸入帳密才能登入,假設管理後台相關網頁我們放在/admin資料夾裡面,那我們應該如何設定呢?

狀況一:
假設我們希望網站的管理後台,只開放給內部網路使用(網段為192.168.X.X),步驟如下:

步驟1.
開啟 C:\AppServ\Apache2.2\conf\httpd.conf ,找到<Directory "C:/AppServ/www">底下的 AllowOverride ,並將他的參數改成ALL。(預設就是ALL)

步驟2.
在我們想要進行特殊設定的網站(或網站下的特定資料夾)就是 /admin 中產生一個 .htaccess 檔案,內容如下:
order deny,allow
deny from all
allow from 192.168

步驟3.
重啟Apache


狀況二:
假設我們希望網站的管理後台,能有帳號、密碼管制,步驟如下:

步驟1.
(同狀況一的步驟1)


步驟2.
(同狀況一的步驟2),但內容改成:
<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
AuthUserFile E:/Appserv/www/admin/.htpasswd
AuthGroupFile /dev/null
AuthName "Enter ID and Password"
AuthType Basic
require valid-user 
order deny,allow

步驟3.
在 /admin 中產生 .htpasswd 檔案,內容如下:


my_user_1:user1pw
my_user_2:user2pw

(帳密可自己修改)

步驟4.
重啟Apache


說明:
AllowOverride 與 .htaccess 設定可以參考鳥哥的網站

2 comments: