2008年9月5日 星期五

htaccess 與認證網頁設定(實作)

由於有一些網頁資料(或檔案)不想讓別人看,所以想用網頁認證的方式來處理!(以下資料取自鳥哥)
1.建立保護目錄的資料

  • 如 # mkdir /var/www/html/protect

2. 以 root 的身份處理 httpd.conf 的設定資料

  • # vi /etc/httpd/conf/httpd.conf
  • # 確定底下這幾行是存在的!
  • AccessFileName .htaccess
  • <Files ~ "^\.ht">
  • Order allow,deny
  • Deny from all
  • </Files>
  • # 在某個不受影響的地方加入這一段:
  • <Directory "/var/www/html/protect">
  • AllowOverride AuthConfig
  • Order allow,deny
  • Allow from all
  • </Directory>
  • # apachectl restart <==重新啟動apache,不要忘記了!

3.建立保護目錄下的 .htaccess 檔案:只要有權限建立者即可進行

  • cd /var/www/html/protect
  • # vi .htaccess
  • # 只要加入底下這幾行即可
  • AuthName "Protect test by .htaccess"
  • Authtype Basic
  • AuthUserFile /var/www/apache.passwd
  • require user test
4.建立密碼檔案 htpasswd (只要有權限即可執行)

  • # htpasswd [-c] 密碼檔檔名 使用者帳號參數:-c :建立後面的密碼檔案。如果該檔案已經存在,則原本的資料會被刪除! 所以如果只是要新增使用者(檔案已存在時),不必加上 -c 的參數!
  • 1. 建立 apache.passwd ,帳號為 test
  • # htpasswd -c /var/www/apache.passwd test
  • New password: <==這裡輸入一次密碼,注意,螢幕不會有任何訊息。
  • Re-type new password: <==這裡再輸入一次
  • Adding password for user test
  • # cat /var/www/apache.passwdtest:FIquw/..iS4yo <==您瞧瞧!已經建立一個新使用者!
  • 2. 在已存在的 apache.passwd 內增加 test1 這個帳號:
  • # htpasswd /var/www/apache.passwd test1
如果要限制只有那些IP才能看的作法:
  • <Directory "/var/www/html/lan">
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    deny from all
    allow from 192.168.1.0/24
  • </Directory>

沒有留言: