.htaccess文件使用教程總結(jié)
1. apache中啟用.htaccess
修改 /private/etc/apache2/httpd.conf
Options FollowSymLinks # AllowOverride None AllowOverride All # 去掉注釋 LoadModule rewrite_module libexec/apache2/mod_rewrite.so # 可以選擇修改使用.htaccess以外的文件名,如.config AccessFileName .config
2. 時區(qū)設(shè)置
SetEnv TZ Asia/Shanghai
3. 顯示/隱藏目錄列表
# 允許顯示,兩種方式
Options Indexes FollowSymLinks
Options All +Indexes
# 隱藏目錄,三種方式
Options FollowSymLinks
Options All -Indexes
Options -Indexes
4. 訪問控制
使用Order命令限制用戶訪問一些關(guān)鍵目錄
# 保護 htaccess 文件
<Files .htaccess>
order allow,deny
deny from all
</Files># 阻止查看所有文件
<Files *>
order allow,deny
deny from all
</Files># 阻止查看指定的文件
<Files logo.png>
order allow,deny
deny from all
</Files># 多種文件類型
<FilesMatch ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">
order allow,deny
deny from all
</FilesMatch>
5. 重定向
Redirect permanent / http://www.dbjr.com.cn
Redirect temp /old.html http://www.dbjr.com.cn/index.html
order deny,allow
6. URL重寫
# 開啟URL重寫
RewriteEngine On
# 重寫規(guī)則
RewriteRule ^demo/getnew/([0-9]+)$ index.php/demo/getnew?id=$1
RewriteRule ^demo/(\S+)$ index.php/demo/$1
7. 阻止/允許特定IP
Order allow,deny
Deny from 123.123.123.123
Deny from 123.123.1
Allow from all
8. 自定義錯誤頁
# 基于網(wǎng)站根目錄
ErrorDocument 404 /pages/404.html
ErrorDocument 500 /pages/500.html
9. 缺省頁
DirectoryIndex index.html index.htm index.php
10. 使用/禁用緩存文件
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
<FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</FilesMatch>
11. 壓縮文件
壓縮 text, html, javascript, css, xml
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
12. 防盜鏈
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?jb51.net(/)?.*$ [NC]
RewriteRule .*\.(gif|jpg|jpeg|bmp|png)$ http://www.dbjr.com.cn/src/logo.png [R,NC,L]
利用.htaccess實現(xiàn)網(wǎng)站圖片防盜鏈功能
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/images
RewriteRule ^.*$ - [L]
RewriteCond %{REQUEST_FILENAME} \.(jpg|gif|bmp|zip|rar|mp3|txt|png|wma|wmv)$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !www.dbjr.com.cn [NC]
RewriteCond %{HTTP_REFERER} !jb51.net [NC]
RewriteCond %{HTTP_REFERER} !www.zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !www.google.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !www.google.com.hk [NC]
RewriteCond %{HTTP_REFERER} !google.com.hk [NC]
RewriteCond %{HTTP_REFERER} !www.google.cn [NC]
RewriteCond %{HTTP_REFERER} !google.cn [NC]
RewriteCond %{HTTP_REFERER} !www.baidu.com [NC]
RewriteCond %{HTTP_REFERER} !www.baidu.cn [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.cn [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteCond %{HTTP_REFERER} !www.ask.com [NC]
RewriteCond %{HTTP_REFERER} !www.163.com [NC]
RewriteCond %{HTTP_REFERER} !www.yahoo.com [NC]
RewriteCond %{HTTP_REFERER} !www.sogou.com [NC]
RewriteCond %{HTTP_REFERER} !www.soso.com [NC]
RewriteCond %{HTTP_REFERER} !www.sina.com.cn [NC]
RewriteCond %{HTTP_REFERER} !www.msn.com [NC]
RewriteRule (.*) /images/error.gif [R,NC,L]
代碼說明:代碼第二行,意思是將網(wǎng)站images目錄的權(quán)限打開,也就是說images文件夾下的圖片不進行防盜鏈,為什么呢?因為我們的盜鏈警告圖片放在這個目錄下,你要是不把這個目錄權(quán)限打開,那么別人盜鏈的時候,連這張盜鏈警告圖片也顯示不出來,只能顯示紅叉叉,這不是我們想要的效果。代碼第四行為需要防盜鏈文件的后綴名,可以自行根據(jù)需要修改。后邊那些代碼的意思是哪些網(wǎng)站可以不防盜鏈,都是一些搜索引擎之類的,還有自己站的網(wǎng)址。代碼最后一行為盜鏈時顯示的警告圖片。也可以將這張圖片存放到其他的網(wǎng)站,比如某些圖片存儲空間,這樣的話就可以更加節(jié)省本站流量了。
13. 安全相關(guān)
RewriteEngine On
# 阻止腳本企圖通過URL修改mosConfig值
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [OR]
# 阻止腳本通過URL傳遞的base64_encode垃圾信息
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]
# 阻止在URL含有<script>標(biāo)記的腳本
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
# 阻止企圖通過URL設(shè)置PHP的GLOBALS變量的腳本
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
# 阻止企圖通過URL設(shè)置PHP的_REQUEST變量的腳本
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
# 把所有被阻止的請求轉(zhuǎn)向到403禁止提示頁面
RewriteRule ^(.*)$ index.php [F,L]
# 禁止某些目錄里的腳本執(zhí)行權(quán)限
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
Options -ExecCGI
.htaccess的特別說明
* 啟用.htaccess,需要修改httpd.conf,啟用AllowOverride,并可以用AllowOverride限制特定命令的使用
* 如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令來改變。例如,需要使用.config ,則可以在服務(wù)器配置文件中按以下方法配置:
AccessFileName .config
* 一般情況下,不應(yīng)該使用. htaccess文件,除非你對主配置文件沒有訪問權(quán)限。有一種很常見的誤解,認為用戶認證只能通過.htaccess文件實現(xiàn),其實并不是這樣,把用戶認證寫在主配置文件中是完全可行的,而且是一種很好的方法。.htaccess文件應(yīng)該被用在內(nèi)容提供者需要針對特定目錄改變服務(wù)器的配置而又沒有 root權(quán)限的情況下。如果服務(wù)器管理員不愿意頻繁修改配置,則可以允許用戶通過.htaccess文件自己修改配置,尤其是ISP在同一個機器上運行了多個用戶站點,而又希望用戶可以自己改變配置的情況下。雖然如此,一般都應(yīng)該盡可能地避免使用.htaccess文件。任何希望放在.htaccess文件中的配置,都可以放在主配置文件的<Directory>段中,而且更高效。避免使用.htaccess文件有兩個主要原因,即性能和安全。
附:
在線 .htaccess文件生成器|htaccess編輯器在線編輯器
能夠在線生成. htaccess文件,很簡單的就配置重定向,系統(tǒng)錯誤文件,自定義默認編碼,錯誤頁面等
相關(guān)文章
Centos中TCPWrappers訪問控制實現(xiàn)
這篇文章主要介紹了Centos中TCPWrappers訪問控制實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11Linux實現(xiàn)文件內(nèi)容去重及求交并差集
這篇文章主要介紹了Linux實現(xiàn)文件內(nèi)容去重及求交并差集,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08詳解CentOS 6.4下PXE+Kickstart無人值守安裝操作系統(tǒng)
這篇文章主要介紹了詳解CentOS 6.4下PXE+Kickstart無人值守安裝操作系統(tǒng) ,PXE(Pre-boot Execution Environment,預(yù)啟動執(zhí)行環(huán)境)是由Intel公司開發(fā)的最新技術(shù),有興趣的可以了解一下。2016-12-12ubuntu下chorme提示輸入秘鑰環(huán)的解決方法
這篇文章主要給大家介紹了ubuntu下chorme提示輸入秘鑰環(huán)的解決方法,文中介紹的非常詳細,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-04-04