php靜態(tài)化頁面 htaccess寫法詳解(htaccess怎么寫?)
更新時間:2012年02月04日 13:35:44 作者:
如何讓自己的本地APACHE服務器支持”.htaccess”呢?其實只要簡單修改一下apache的httpd.conf設置就可以讓APACHE支持.htaccess了
1 . 如何讓自己的本地APACHE服務器支持.htaccess
如何讓自己的本地APACHE服務器支持”.htaccess”呢?其實只要簡單修改一下apache的httpd.conf設置就可以讓APACHE支持.htaccess了,來看看操作
打開httpd.conf文件(在那里? APACHE目錄的CONF目錄里面),用文本編輯器打開后,查找
(1)
Options FollowSymLinks
AllowOverride None
改為
Options FollowSymLinks
AllowOverride All
(2)去掉下面的注釋
LoadModule rewrite_module modules/mod_rewrite.so
就可以了
2. htaccess 寫法
#.htaccess 文件所在的目錄
RewriteBase / #目錄名字
RewriteEngine on #打開引擎
RewriteRule #匹配規(guī)則 #跳轉(zhuǎn)路徑
Apache系統(tǒng)中的.htaccess文件(或者”分布式配置文件”提供了針對目錄改變配置的方法,即,在一個特定的文檔目錄中放置一個包含一個或多個指令的文件,以作用于此目錄及其所有子目錄。作為用戶,所能使用的命令受到限制。管理員可以通過Apache的AllowOverride指令來設置。
子目錄中的指令會覆蓋更高級目錄或者主服務器配置文件中的指令。
.htaccess必須以ASCII模式上傳,最好將其權(quán)限設置為644。
錯誤文檔的定位
常用的客戶端請求錯誤返回代碼:
401 Authorization Required
403 Forbidden
404 Not Found
405 Method Not Allowed
408 Request Timed Out
411 Content Length Required
412 Precondition Failed
413 Request Entity Too Long
414 Request URI Too Long
415 Unsupported Media Type
常見的服務器錯誤返回代碼:
500 Internal Server Error
用戶可以利用.htaccess指定自己事先制作好的錯誤提醒頁面。一般情況下,人們可以專門設立一個目錄,例如errors放置這些頁面。然后再.htaccess中,加入如下的指令:
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/internalerror.html
一條指令一行。上述第一條指令的意思是對于404,也就是沒有找到所需要的文檔的時候得顯示頁面為/errors目錄下的notfound.html頁面。不難看出語法格式為:
ErrorDocument 錯誤代碼 /目錄名/文件名.擴展名
如果所需要提示的信息很少的話,不必專門制作頁面,直接在指令中使用HTML號了,例如下面這個例子:
ErrorDocument 401 “你沒有權(quán)限訪問該頁面,請放棄!”
文檔訪問的密碼保護
要利用.htaccess對某個目錄下的文檔設定訪問用戶和對應的密碼,首先要做的是生成一個.htpasswd的文本文檔,例如:
zheng:y4E7Ep8e7EYV
這里密碼經(jīng)過加密,用戶可以自己找些工具將密碼加密成.htaccess支持的編碼。該文檔最好不要放在www目錄下,建議放在www根目錄文檔之外,這樣更為安全些。
有了授權(quán)用戶文檔,可以在.htaccess中加入如下指令了:
AuthUserFile .htpasswd的服務器目錄
AuthGroupFile /dev/null (需要授權(quán)訪問的目錄)
AuthName EnterPassword
AuthType Basic (授權(quán)類型)
require user wsabstract (允許訪問的用戶,如果希望表中所有用戶都允許,可以使用 require valid-user)
注,括號部分為學習時候自己添加的注釋
拒絕來自某個IP的訪問
如果我不想某個政府部門訪問到我的站點的內(nèi)容,那可以通過.htaccess中加入該部門的IP而將它們拒絕在外。
例如:
order allow,deny
deny from 210.10.56.32
deny from 219.5.45.
allow from all
第二行拒絕某個IP,第三行拒絕某個IP段,也就是219.5.45.0~219.2.45.255
想要拒絕所有人?用deny from all好了。不止用IP,也可以用域名來設定。
保護.htaccess文檔
在使用.htaccess來設置目錄的密碼保護時,它包含了密碼文件的路徑。從安全考慮,有必要把.htaccess也保護起來,不讓別人看到其中的內(nèi)容。雖然可以用其他方式做到這點,比如文檔的權(quán)限。不過,.htaccess本身也能做到,只需加入如下的指令:
order allow,deny
deny from all
URL轉(zhuǎn)向
我們可能對網(wǎng)站進行重新規(guī)劃,將文檔進行了遷移,或者更改了目錄。這時候,來自搜索引擎或者其他網(wǎng)站鏈接過來的訪問就可能出錯。這種情況下,可以通過如下指令來完成舊的URL自動轉(zhuǎn)向到新的地址:
Redirect /舊目錄/舊文檔名 新文檔的地址
或者整個目錄的轉(zhuǎn)向:
Redirect 舊目錄 新目錄
改變?nèi)笔〉氖醉撐募?
一般情況下缺省的首頁文件名有default、index等。不過,有些時候目錄中沒有缺省文件,而是某個特定的文件名,比如在pmwiki中是 pmwiki.php。這種情況下,要用戶記住文件名來訪問很麻煩。在.htaccess中可以輕易的設置新的缺省文件名:
DirectoryIndex 新的缺省文件名
也可以列出多個,順序表明它們之間的優(yōu)先級別,例如:
DirectoryIndex filename.html index.cgi index.pl default.htm
防止盜鏈
如果不喜歡別人在他們的網(wǎng)頁上連接自己的圖片、文檔的話,也可以通過htaccess的指令來做到。
所需要的指令如下:
RewriteEngine on
RewriteCond %{ HTTP_REFERER } !^$
RewriteCond %{ HTTP_REFERER } !^http://(www.)?mydomain.com/.*$ [NC]
RewriteRule .(gif&line;jpg)$ – [F]
如果覺得讓別人的頁面開個天窗不好看,那可以用一張圖片來代替:
RewriteEngine on
RewriteCond %{ HTTP_REFERER } !^$
RewriteCond %{ HTTP_REFERER } !^http://(www.)?mydomain.com/.*$ [NC]
RewriteRule .(gif&line;jpg)$ http://www.mydomain.com/替代圖片文件名 [R,L]
如何讓自己的本地APACHE服務器支持”.htaccess”呢?其實只要簡單修改一下apache的httpd.conf設置就可以讓APACHE支持.htaccess了,來看看操作
打開httpd.conf文件(在那里? APACHE目錄的CONF目錄里面),用文本編輯器打開后,查找
(1)
Options FollowSymLinks
AllowOverride None
改為
Options FollowSymLinks
AllowOverride All
(2)去掉下面的注釋
LoadModule rewrite_module modules/mod_rewrite.so
就可以了
2. htaccess 寫法
#.htaccess 文件所在的目錄
RewriteBase / #目錄名字
RewriteEngine on #打開引擎
RewriteRule #匹配規(guī)則 #跳轉(zhuǎn)路徑
Apache系統(tǒng)中的.htaccess文件(或者”分布式配置文件”提供了針對目錄改變配置的方法,即,在一個特定的文檔目錄中放置一個包含一個或多個指令的文件,以作用于此目錄及其所有子目錄。作為用戶,所能使用的命令受到限制。管理員可以通過Apache的AllowOverride指令來設置。
子目錄中的指令會覆蓋更高級目錄或者主服務器配置文件中的指令。
.htaccess必須以ASCII模式上傳,最好將其權(quán)限設置為644。
錯誤文檔的定位
常用的客戶端請求錯誤返回代碼:
401 Authorization Required
403 Forbidden
404 Not Found
405 Method Not Allowed
408 Request Timed Out
411 Content Length Required
412 Precondition Failed
413 Request Entity Too Long
414 Request URI Too Long
415 Unsupported Media Type
常見的服務器錯誤返回代碼:
500 Internal Server Error
用戶可以利用.htaccess指定自己事先制作好的錯誤提醒頁面。一般情況下,人們可以專門設立一個目錄,例如errors放置這些頁面。然后再.htaccess中,加入如下的指令:
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/internalerror.html
一條指令一行。上述第一條指令的意思是對于404,也就是沒有找到所需要的文檔的時候得顯示頁面為/errors目錄下的notfound.html頁面。不難看出語法格式為:
ErrorDocument 錯誤代碼 /目錄名/文件名.擴展名
如果所需要提示的信息很少的話,不必專門制作頁面,直接在指令中使用HTML號了,例如下面這個例子:
ErrorDocument 401 “你沒有權(quán)限訪問該頁面,請放棄!”
文檔訪問的密碼保護
要利用.htaccess對某個目錄下的文檔設定訪問用戶和對應的密碼,首先要做的是生成一個.htpasswd的文本文檔,例如:
zheng:y4E7Ep8e7EYV
這里密碼經(jīng)過加密,用戶可以自己找些工具將密碼加密成.htaccess支持的編碼。該文檔最好不要放在www目錄下,建議放在www根目錄文檔之外,這樣更為安全些。
有了授權(quán)用戶文檔,可以在.htaccess中加入如下指令了:
AuthUserFile .htpasswd的服務器目錄
AuthGroupFile /dev/null (需要授權(quán)訪問的目錄)
AuthName EnterPassword
AuthType Basic (授權(quán)類型)
require user wsabstract (允許訪問的用戶,如果希望表中所有用戶都允許,可以使用 require valid-user)
注,括號部分為學習時候自己添加的注釋
拒絕來自某個IP的訪問
如果我不想某個政府部門訪問到我的站點的內(nèi)容,那可以通過.htaccess中加入該部門的IP而將它們拒絕在外。
例如:
order allow,deny
deny from 210.10.56.32
deny from 219.5.45.
allow from all
第二行拒絕某個IP,第三行拒絕某個IP段,也就是219.5.45.0~219.2.45.255
想要拒絕所有人?用deny from all好了。不止用IP,也可以用域名來設定。
保護.htaccess文檔
在使用.htaccess來設置目錄的密碼保護時,它包含了密碼文件的路徑。從安全考慮,有必要把.htaccess也保護起來,不讓別人看到其中的內(nèi)容。雖然可以用其他方式做到這點,比如文檔的權(quán)限。不過,.htaccess本身也能做到,只需加入如下的指令:
order allow,deny
deny from all
URL轉(zhuǎn)向
我們可能對網(wǎng)站進行重新規(guī)劃,將文檔進行了遷移,或者更改了目錄。這時候,來自搜索引擎或者其他網(wǎng)站鏈接過來的訪問就可能出錯。這種情況下,可以通過如下指令來完成舊的URL自動轉(zhuǎn)向到新的地址:
Redirect /舊目錄/舊文檔名 新文檔的地址
或者整個目錄的轉(zhuǎn)向:
Redirect 舊目錄 新目錄
改變?nèi)笔〉氖醉撐募?
一般情況下缺省的首頁文件名有default、index等。不過,有些時候目錄中沒有缺省文件,而是某個特定的文件名,比如在pmwiki中是 pmwiki.php。這種情況下,要用戶記住文件名來訪問很麻煩。在.htaccess中可以輕易的設置新的缺省文件名:
DirectoryIndex 新的缺省文件名
也可以列出多個,順序表明它們之間的優(yōu)先級別,例如:
DirectoryIndex filename.html index.cgi index.pl default.htm
防止盜鏈
如果不喜歡別人在他們的網(wǎng)頁上連接自己的圖片、文檔的話,也可以通過htaccess的指令來做到。
所需要的指令如下:
RewriteEngine on
RewriteCond %{ HTTP_REFERER } !^$
RewriteCond %{ HTTP_REFERER } !^http://(www.)?mydomain.com/.*$ [NC]
RewriteRule .(gif&line;jpg)$ – [F]
如果覺得讓別人的頁面開個天窗不好看,那可以用一張圖片來代替:
RewriteEngine on
RewriteCond %{ HTTP_REFERER } !^$
RewriteCond %{ HTTP_REFERER } !^http://(www.)?mydomain.com/.*$ [NC]
RewriteRule .(gif&line;jpg)$ http://www.mydomain.com/替代圖片文件名 [R,L]
相關(guān)文章
linux注釋crontab文件及crontab執(zhí)行sh的坑記錄
這篇文章主要介紹了linux注釋crontab文件及crontab執(zhí)行sh的坑記錄,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04Linux網(wǎng)絡啟動問題:Device does not seem to be present解決辦法
這篇文章主要介紹了Linux網(wǎng)絡啟動問題:Device does not seem to be present解決辦法的相關(guān)資料,希望通過本文能幫助到大家解決這樣的問題,需要的朋友可以參考下2017-10-10Linux VPS 自動備份數(shù)據(jù)到遠程主機FTP的方法
推薦GD的免費空間,10G,并且長期穩(wěn)定。備份建議設置為每天執(zhí)行一次,時間在凌晨2點至凌晨5點之間2011-11-11ubuntu系統(tǒng)下matplotlib中文亂碼問題的解決方法
本篇文章主要介紹了ubuntu系統(tǒng)下matplotlib中文亂碼問題的解決方法,具有一定的參考價值,有興趣的可以了解一下2017-06-06Linux下安裝Python3和django并配置mysql作為django默認服務器方法
下面小編就為大家?guī)硪黄狶inux下安裝Python3和django并配置mysql作為django默認服務器方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10