説到.htaccess 文件,我想對於 WordPress 新手或者老手都應該不是很熟悉,也沒有多少這方面的概念吧,至少小編是這樣的,而最近看到一篇有關介紹的文章,覺得很不錯,所以今天打算分享給大家,也給自己一篇掃盲課吧!

首先介紹下.htaccess 文件到底是什麼,.htaccess 是 Apache HTTP Server 系統級別的配置文件,通常用來實現主機本身以外的一些功能的,比如説重定向、 Gzip 、以及訪問限制等等。。。

那麼下面就介紹 10 個關於.htaccess 文件的妙用,看看大家都瞭解多少

1 、重定向 (301 跳轉)

相信這個功能,大家都不陌生,為了集中網站域名的權重,通常會將不帶 www 的域名 301 跳轉到帶 www 的域名上,比如説本站的域名 2zzt.com 就會自動的跳轉到 www.2zzt.com 上來,這樣做的好處就是,搜索引擎會集中不帶 www 的域名的頁面權重到帶 www 的網址頁面上來,如果沒有做 301 重定向,且帶 www 和不帶 www 的域名都能訪問同一個網站,那麼在搜索引擎優化方面將起到分散權重的弊端!具體操作:(將域名替換為自己的粘貼到.htaccess 文件內即可)

  1. RewriteEngine On  
  2. RewriteCond %{HTTP_HOST} !^2zzt.com$ [NC]  
  3. RewriteRule ^(.*)$ http:  

2 、防盜鏈功能

確實,.htaccess 文件可以開啓防盜鏈的功能,什麼叫防盜鏈?防盜鏈就是節省網站的流量,將網站內的文件、圖片等都僅能在自己的網站域名上顯示,避免其他網站調用自己網站文件而流失大量的流量,對於很多小站長來説,主機都是有流量限制的 。具體操作:

  1. RewriteEngine On  
  2. RewriteCond %{HTTP_REFERER} !^http:  
  3. RewriteCond %{HTTP_REFERER} !^$  
  4. WordPress 主題下載站提醒:/notlink.png 為盜鏈顯示的圖片,建議使用小尺寸的,以免因為圖片太大,二次浪費!  
  5. RewriteRule .*.(jpe?g|gif|bmp|png)$ /notlink.png [L]  

3 、將 WordPress 的 feed 源進行 301 重定向

説到這功能,老實説小編還是很陌生的,原因是小編就沒用過 feed 的功能,當然如果大家在使用 WordPress 自帶的 feed 源的話,這裏就跳過吧,因為這個功能是為了那些不是使用 WordPress 自帶的 feed 源的朋友能夠協助站長規範化 feed 源的,具體操作:

  1. <IfModule mod_alias.c>  
  2. RedirectMatch 301 /feed/(atom|rdf|rss|rss2)/?$ http:  
  3. RedirectMatch 301 /comments/feed/(atom|rdf|rss|rss2)/?$ http:  
  4. </IfModule>  

4 、主機錯誤頁面的定義

這個功能相對於大家使用虛擬主機的話,可能都已經有相關設置了,但如果是自己搭建環境的話,相信還是需要用到的,具體操作:

  1. ErrorDocument 400 /errors/badrequest.html  
  2. ErrorDocument 401 /errors/authreqd.html  
  3. ErrorDocument 403 /errors/forbid.html  
  4. ErrorDocument 404 /errors/notfound.html  
  5. ErrorDocument 500 /errors/serverr.html  

5 、指定類型的文件的打開方式

好吧,又一個陌生的功能來了,這個功能主要表現在於個別站點的音樂 (mp3) 文件,圖片 (jpg 、 png 、 gif) 文件等文件必須通過下載方式得到,對於下載站來説,這樣的指令是很需要的,具體操作:(自已添加文件擴展名即可)

  1. <Files *.jpg>  
  2. ForceType application/octet-stream  
  3. Header set Content-Disposition attachment  
  4. </Files>  

6 、 php 錯誤運行的記錄生成

又一個陌生的功能來了,意思就是生成主機空間運行 php 所產生錯誤的記錄,對於技術宅或者查詢被黑記錄是十分需要的,想象下,在密密麻麻的記錄中,尋找着一些蛛絲馬跡,是否很牛 B 的樣子,呵呵。具體操作:

  1. # 啓用不向用户顯示錯誤  
  2. php_flag display_startup_errors off  
  3. php_flag display_errors off  
  4. php_flag html_errors off  
  5. # 記錄日誌到文件  
  6. php_flag log_errors on  
  7. php_value error_log /location/to/php_error.log  

7 、網址中的文件擴展名的設定

從名稱看不出具體的含義吧,其實很簡單,這個功能可以移除網址中 文件的擴展名 例如.php .asp .html 通過.htaccess 文件來實現起來是比較簡單和安全的,也是比較有效率的,當然這也是比較極端的做法,技術宅的愛好,但搜索引擎不愛好,搜索引擎更愛靜態文件,比如.html 所以需要謹慎使用!具體操作:

  1. RewriteEngine on  
  2. RewriteCond %{REQUEST_FILENAME} !-d  
  3. RewriteCond %{REQUEST_FILENAME}.html -f  
  4. RewriteRule ^(.*)$ $1.html  
  5. # html 可以被替換成為 asp 、 php 等  

8 、未配置的 apache 為自動列出文件目錄

我們經常會看到一些網站打開後是文件目錄?其實他們是未配置的 apache 環境產生的,那麼這很不安全,下面的代碼能夠輕鬆解決:

9 、網站頁面壓縮,也叫靜態資源壓縮 (Gzip)

加快頁面打開速度的有效方法就是頁面靜態壓縮,簡稱 gizp, 當然靜態化的方面有很多,這裏説下普遍頁面的壓縮,即靜態資源壓縮 (Gzip),操作方法很簡單:

  1. <ifmodule mod_deflate.c>  
  2. AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-httpd-php application/x-javascript  
  3. </ifmodule>  

10 、糾正代碼的編碼

很多朋友在寫完一段代碼上傳到服務器後,經常出現了亂碼的情況,而下面這個步驟,將解決因為代碼編碼而亂碼的問題:

  1. <FilesMatch ".(htm|html|css|js)$">  
  2. AddDefaultCharset UTF-8  
  3. </FilesMatch>  

現在對.htaccess 文件的妙用是否有了更多的認識了,當然還有很多的功能小編自己也不知道,先寫這麼多吧,日後再更新,親手碼字,請複製黨滾!