Apache 網頁認證.htaccess 設定方法

Apache 網頁認證.htaccess 設定方法

[轉貼].htaccess 可放在任何一網頁目錄內,當該目 httpd.conf 設定不是 AllowOverride None 便可使用 .htaccess 的功能了,而設定作 AllowOverride All 更可使用 .htaccess 的所有功能了
.htaccess
可用作對該目及其子目進行取存控制,而不用修改 httpd.conf 及不用重新動伺服器軟件
——————————————————————————–
httpd.conf
的設定
加上或取消註解 (#) ]定改成 AllowOverride All
然後儲存及重新
動伺服器軟件
——————————————————————————–.htaccess 的用法
先把 .htaccess 放在要用的目錄內 (Windows 系統不可以直接把案改名作 .htaccess ,需用間接的方法,如在指令模式下 ren filename.txt .htaccess 或用 FTP 軟件修改該)
用法
:
1.
密碼保護

.htaccess
寫上:
AuthName
testing

AuthType Basic
AuthUserFile
C:/Apache/htdocs/testing/.htpasswd
require valid-user
AuthName
是當你進入密碼保護時,瀏覽器出現的
AuthUserFile
C:/Apache/htdocs/testing/.htpasswd” 是密碼案的位置
密碼 (.htpasswd) 寫上:
user1:password1
user2:password2
但密碼不應直接寫上,即是如果有一使用者是 test ,密碼是 password ,先用 C:\Apache\bin
htpasswd.exe 把密碼加密,用法如下] require group group1 ,因此只有 group1 的使用者可通過, john , peter david2. 自設錯誤報告文件
.htaccess
寫上:
ErrorDocument 404 /404.html
如果找不到網頁時,便輸出 404.html
,其他錯誤時做法亦然,:
ErrorDocument 404
“找不到網頁

ErrorDocument 500 /500.html
3. 自設首頁
.htaccess
寫上:
DirectoryIndex a.html
首頁
案便是 a.html 4. 禁止讀取
.htaccess
寫上:

order allow,deny
deny from all

deny from all 即所有人皆不能讀取 sercet.html Apache 1.3 以後的版本,更可以用支援 regular expression filesmatch
.htaccess
寫上:

order allow,deny
deny from all

即所有人皆不能讀取副名為 .jpg .htaccess 寫上:

order allow,deny
allow form all
deny form 202.202

ip 是以 202.202 開頭的不能讀取副名為 secret.html .htaccess 寫上:

order deny,allow
deny from all
allow from 202.202 domain.com

即只允許 ip 是以 202.202 為開頭或域名是 domain.com 的讀取此目錄內的任何.htaccess 寫上:
AuthUserFile
C:/Apache/htdocs/testing/.htpasswd
require user peter即只允許 .htpasswd 列出的 peter 讀取 sercet.html5. 重新導向文件
.htaccess
寫上:
Redirect /old http://url/new
當用
要求 /old ,伺服器便把其重新導向至 http://url/new ,或在 .htaccess 寫上:
Redirect permanent /old http://url/new
當用
要求 /old ,伺服器便叫瀏覽器把其永遠重新導向至 http://url/new6. 防止列出目綠
.htaccess
寫上:
Option -Indexes
這便不能列出
案目
.htaccess
寫上:
IndexIgnore *.zip *.txt
這便不列出
案目錄內 .zip .txt : .htaccess 的大部分 (:密碼保護) 可以寫回 httpd.conf 相應的目設定( )首先在你要保護的目下建立一個名為.htaccess案,容大致如下:# 隨便取個名字吧,它會出現在瀏覽器的出視窗中。
AuthName
阿達的祕密基地
#
編碼方式,目前只支援Basic一種而已。
AuthType Basic
#
密碼對路徑,可用htpasswd指令建立。
AuthUserFile /home/
/filename
#
若下面有指定 require group,則需要group
對路徑。
AuthGroupFile /home/
/filename
require user user1 user2

require group group1 group2
它的密碼認證方式有二種,一種是指定users,也就是只有指定的username才有資格進入這個受保護的目。另一種是則指定group,凡屬於指定的groupusers才有資格進入這個受保護的目,而group中到底有哪些users是記AuthGroupFile中所指定的案, users的密碼則是指定在AuthUserFile中。且讓我們來看看這兩個的格式:group
group1:user1 user2

group2:user3 user4

passwd
user1:password
user2:password
密碼裡的密碼是編碼過的,你可以使用htpasswd指令來建立密碼或新增users。而且由於密碼是用crypt函數編碼的,所以你也可以自己寫個CGI程式來新增users另外還有個安全問題要提醒你:密碼不要放在www文件的樹目中,最好是放在www外面,以免密碼被不法之徒去猜密碼。OK!!就這麼簡單,現在你可以試試看成功了沒…=====================================================================
轉貼自網站建置百寶箱
.htaccess acache http 伺服器上的一個設定
一般來,管理人員都會開放部份功能給你自行設定,也有的會完全關閉對 .htaccess 的支援。設定網頁密碼;
設定發生錯誤時出現的文件;
改變首頁的 (index.html)
禁止讀取案;
重新導向文件;
加上 MIME 類別;
防止列出目綠..等等
其實還有很多功能,不過一般只會開放一般功能給你用 (除非你是管理員…),而我也不識那麼多。所以我只一般會用到的功能。.htaccess 簡介 】
.htaccess
是一個文字,你可以做任何好像 notepad 的文字編輯器去寫一個。
或者你會對 .htaccess 這個名字有點困惑,其實 .htaccess 是一個完全的案名,不是 filaname.htaccess 或者甚麼的(當然也有管理員故意把它設定成其他名字,但一般都是用 .htaccess 的)。為何是 .htaccess?因為所有以 “.” 開頭的名在 *nix 系統中也是有屬性隱藏的,平常列出資料夾時不會出現,所以保安會好一點。你可能會問:『MS Windows 要我一定給它一個名字,如何把它存成為 .htaccess?』 其實方法有兩個。第一個是到 ms-dos 的視窗中,按 ren filename.xxx .htaccess 就可以了;第二個是在上傳到伺服器時才改名做 .htaccess
.htaccss 設定的格式是一行一個指令,如果你的 notepad 設定了自動換行的話,請關上它,這樣會比較安全。
一點要注意, .htaccess apache 物,不是 IIS 的。IIS 伺服器不支援它,也就是你不能以簡單地上傳一個 ASCII 去設定在 IIS 伺服器上的 http 服務。
在上載 .htaccess 時,必需使用 ASCII 模式!你或許還要 chmod 它到 644(RW_R__R_)
一個放了 .htaccess 的目和它的子目都會被 .htaccess 影響。如果我在 /abc/ 放了一個 .htaccess,那麼 /abc/ /abc/def/ 所有 file 都會被它影響,但 /index.html 不會被它影響 ←← 這一點是很重要的。【密碼保護 】這是最常見 .htaccess 被使用的功能之一,資料夾密碼保護。
這種方法可以使沒有授權的瀏覽者不能進入你所設定的限制區域,使用了 Javacript 設的密碼太簡單了,一下字就會被破解,而使用 .htaccess 系統就比使用 CGI 程式保護會員專頁將更為有效,更安全。更重要的是使用 .htaccess 方式去設定不需要編寫程式的技能。
首先,你要開一般文字編輯工具,做出一個名叫 .htpasswd (當然又可能是其他,但一般伺服器都會設定 .htpasswd 是不能經由 http 讀到的。案中的的一句代表一個使用者,使用者名稱以及加密了的密碼是以冒號(分隔。而密碼必須經過加密才可以使用。加密的方法是一般密碼使用了的 crypt,如果你不知如何加密,請到以下的網頁。
UHome
http://www.euronet.nl/~arnow/htpasswd/
: Win32 版本的 apache 好像不支援用了 crypt 加密法的密碼,只支援 SHA1 MD5 的。如果你是使用 apahce for win32 版本,請使用 C:\Program Files\Apache Group\Apache\bin\htpasswd.exe 做出以 MD5 加密的密碼!!再在 .htaccess 中,加上以下句子
AuthName MemberPage
AuthType Basic
AuthUserFile /absolute/path/.htpasswd
require valid-user
AuthName 就是當 browser 得知要密碼時所出現的句字,你可以自行改動 MemberPage;而第二句的 AuthType Basic 就千萬不要去改;第三句的 AuthUserFile 就是設定所使用的 .htpasswd ,要留意它好像必需是在伺服器上的對路徑。請留意,這不是 URL 的位置、也不一定是在 ftp 中看到的位置、就算是由 CGI 自行測到的路徑也未必準確,請細看伺服器上的 (例如在 virtualave.netURL /.htpasswd ftp 看到的是 /public_html/.htpasswdCGI 測到 /home/public_html/.htpasswd,但是事實上你要設定路徑為 /data1/virtualave.net/USERNAME/public_html/.htpasswd)
為了保安理由,不建議把 .htpasswd 放到可以用 http 去到的目
最後的 require 就是命令伺服器誰可以進入,require valid-user 就是指只要是 .htpasswd 中的任何一人就可了;你也可以指定在名單上只有某人可以通過,require user username require user username1 username2 username3;也可以指定是某組人才可以,require group groupname而設定組的方法是再做一個叫 .htgroup 的文字容如下:
groupname1: username1 username2 username3
groupname2: username1 username3 username4
再在 .htaccess 中加多一句 AuthGroupFile /absolute/path/.htgroup .htpasswd 的方法一樣,我不再了。 ASCII 模式上傳所有案後,在那個資料夾中所有案都會被保護。
而再進一,我們更可以設定個別設定只有某個案會密碼,不同案要不同的密碼,但是我會一點才【自設錯誤報告文件 】
想做到好像 www.microsoft.com 一樣, 找不到文件不只是幾句白底黑字,也不是 IE 本身那個有 bug 的 “找不到網頁”,而是另一頁 HTML 文件嗎?
逢法很簡單,首先寫一頁找不到文件的 HTML,再用 notepad 打開您的 .htaccess。在最後加上一句ErrorDocument 404 404.html
404.html
是錯誤
案路經,即所顯示的案;404 是錯誤碼。以下就是一般會見到的錯誤碼和所代表的錯誤原因。
401
Authorization failed
授權失敗;即是錯誤 password
403
Access denied
存取違規;即是你不可以讀取這個

404
File not found
找不到
500
Internal Server Error
伺服器部錯誤;可能是 http 伺服器本身是問題,也可能是 CGI 出錯
也有以下兩類做法
ErrorDocument 404
“找不到”
ErrorDocument 500 http://www.xxx.com/xxx
Ps.
如果所用的錯誤文件是一個 CGI ,就會有一點關於那個錯誤的資科放到環境變數 CGI 讀取。【自設首頁案 】
這個可以算是最簡單的一個設定了DirectoryIndex index.html index.htm index.cgi
很簡單,常你的網址是一個目
,沒有注明名時 (: http://www.xxx.com/) 它會顯示 index.html。如果沒有這個案,就找下一個案。如果沒有任可一個名單上的案,就會依設定列出目錄內名。【禁止讀取案 】
如果你的 CGI 會把秘密的(: 密碼)存到一個案,那麼別人只要知道這個案的位置,就可以很簡單的看到一切。不想這樣嗎?你可以完全不改變其他設定,不用把那個案移到其他地方,只需在 .htaccess 加幾句就可以。
order allow,deny
deny from all
Apache 1.3 以後的版本,我們更可以用支援 regular expression filesmatch

order allow,deny
deny from all

其實 files 也可用 regular expression 的,但要加一個 ~ 在前(例: )。 files filesmatch 的意思就是,內堻Q包著的幾句只會對付合要求的部份案生效。
接著我就有關中間的文字→order deny, allow,就是先找出禁止(deny) 的,才去找例外許可的 (allow)。如果把它們反轉,就是 order allow, deny 就是,就是先找出許可(allow) 的,才去找禁止的 (deny)。之後的 deny form all 就是,全部 IP 來的都不可以。相對地 allow form all 也就是全部都可以。而你更可以這樣做
order allow,deny
allow form all
deny form 123.456
     所有以 123.456 開始的 IP,如 123.456.1.1除了設定 IP 外,您也可以設定 hostname(: xxx.com)Files Filesmatch 的用途很多,你不但可以設定 deny,更可以設定 個別案的密碼,如

require user abcrequire user def

【重新導向文件 】
就是重新導向文件。Redirect /abc http://www.xxx.com/abcabc
Redirect permanent /def http://www.xxx.com/def
即是
,如果 browser 要求 http://_____/abc 它就會重新導向至 http://www.xxx.com/abcabc而第二句又有甚麼不同呢?答案就是 http 能碼不同,parmanet (301) 是永遠的,代表 browser 下一次未必會再要求這案,而直接找另一個。除了 permanent 之外,還有 temp ( 301;和不寫一樣)seeother(303) gone(410)
也有 RedirectMatch,不過它就支援 regular expression【防止列出目綠案 】
其實要做到這個目標可以不用 .htaccess,你只要自己寫一頁 index.html 放入去就可以了。但是,用 .htaccess 會方便很多,在 .htaccess 中加一句。Option -Indexes
這樣做,伺服器就不會多事地把目
錄內名列出。如果你只不過是想不列出某幾個案,請用以下的設定
IndexIgnore *.gif *.jpg
我想就算只識一點英文的人也會明白,就是在列出名時不理會(ignore) 後面的案。Ps. 如果設定了 IndexIgnore *,它就不會列出任何案,但是會有 HEADER README 容,而它們是可以自設的。

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。