首先簡單介紹一下,.htaccess文件是Apache服務器中的一個配置文件(Nginx服務器沒有),它負責相關目錄下的網頁配置。經過對.htaccess文件進行設置,能夠幫咱們實現:網頁301重定向、自定義400/403/404/500錯誤頁面、改變文件擴展名、容許/阻止指定IP用戶訪問、禁止目錄列表、配置默認文檔等功能,能夠說是功能很是強大,下面就給你們介紹一下最經常使用的幾個功能的設置方法。javascript
ErrorDocument 400 /error_pages/400.html
ErrorDocument 401 /error_pages/401.html
ErrorDocument 403 /error_pages/403.html
ErrorDocument 404 /error_pages/404.html
ErrorDocument 500 /error_pages/500.htmlphp
#從 old_dir 目錄重定向到 new_dir 目錄
Redirect /old_dir/ http://www.yourdomain.com/new_dir/index.html
#把經過二級目錄訪問的請求301重定向到二級域名
RedirectMatch 301 /dir/(.*) http://dir.yourdomain.com/$1css
#禁止 IP 爲 255.0.0.0 和 123.45.6.區段的 IP 訪問
order allow,deny
deny from 255.0.0.0
deny from 123.45.6.
allow from allhtml
#禁止從 otherdomain.com 和 anotherdomain.com 的來源訪問
RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} otherdomain.com [NC,OR]
RewriteCond %{HTTP_REFERER} anotherdomain.com
RewriteRule .* – [F]java
#從本站之外的域名訪問圖片,一概顯示 feed.jpg
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?yourdomain.com/.*$ [NC]
RewriteRule .(gif|jpg|png)$ http://www.yourdomain.com/feed.jpg [R,L]服務器
#防止顯示文件夾列表,當訪問文件夾時,服務器會查找index.html,並將其作爲首頁文件,如不存在依次向後查找
DirectoryIndex index.html index.cgi index.phpapp
AddType application/octet-stream .mp3 .mp4dom
Header set X-Pingback 「http://www.yourdomain.com/xmlrpc.php」
Header set article-by 「yourdomain.com」ide
# 啓用有效期控制
ExpiresActive On
# gif/png/jpg 有效期爲1個月
ExpiresByType p_w_picpath/gif 「access plus 1 month」
ExpiresByType p_w_picpath/png 「access plus 1 month」
ExpiresByType p_w_picpath/jpg 「access plus 1 month」
# js/css 有效期爲1星期
ExpiresByType text/javascript 「access plus 1 week」
ExpiresByType text/css 「access plus 1 week」網站
# BEGIN WordPress #這是一行註釋,表示 WordPress 的 htaccess 從這裏開始
#若是Apache加載了mod_rewrite.c模塊,則運行如下代碼
RewriteEngine On #啓用 mod_rewrite 引擎
RewriteBase / #設置目錄重寫的基準URL爲 /
RewriteRule ^index.php$ – [L] #若是請求路徑是 index.php,中止重寫操做(避免死循環)
RewriteCond %{REQUEST_FILENAME} !-f #若是請求的不是一個文件,繼續處理
RewriteCond %{REQUEST_FILENAME} !-d #若是請求的不是一個目錄,繼續處理
RewriteRule . /index.php [L] #把全部的請求指向 /index.php
#結束 IfModule
# END WordPress #WordPress 的 htaccess 到這裏結束
#若是Apache加載了mod_rewrite.c模塊,則運行如下代碼RewriteEngine OnRewriteBase /discuzRewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^topic-(.+).html$ portal.php?mod=topic&topic=$1&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^article-([0-9]+)-([0-9]+).html$ portal.php?mod=view&aid=$1&page=$2&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^forum-(w+)-([0-9]+).html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+).html$ forum.php?mod=viewthread&tid=$1&extra=page%3D$3&page=$2&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^group-([0-9]+)-([0-9]+).html$ forum.php?mod=group&fid=$1&page=$2&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^space-(username|uid)-(.+).html$ home.php?mod=space&$1=$2&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^blog-([0-9]+)-([0-9]+).html$ home.php?mod=space&uid=$1&do=blog&id=$2&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^archiver/(fid|tid)-([0-9]+).html$ archiver/index.php?action=$1&value=$2&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^([a-z]+[a-z0-9_]*)-([a-z0-9_-]+).html$ plugin.php?id=$1:$2&%1#結束 IfModule