常用的.htaccess代碼片段

1、除 URL 中的 www

出於 SEO 考慮,你可能期望移除 URL 中的 www 前綴。以下代碼實現了這個功能,並將所有帶 www 的地址重定向到無 www 一級域名。

  1. RewriteEngine On  
  2. RewriteCond %{HTTP_HOST} !^mangguo.org$ [NC]  
  3. RewriteRule ^(.*)$ http://mangguo.org/$1 [L,R=301] 


2、防止盜鏈

盜鏈通常被認爲是可恥行爲。當你被別人盜鏈,別人將免費使用你那昂貴的帶寬,不是小氣,是帶寬費用傷不起啊傷不起。要防止盜鏈僅需添加使用以下代碼:

  1. RewriteEngine On  
  2. #將 ?mangguo\.org/ 替換成你的博客地址  
  3. RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mangguo\.org/ [NC]  
  4. RewriteCond %{HTTP_REFERER} !^$  
  5. #將 /images/nohotlink.jpg 替換成“請勿盜鏈”圖片地址  
  6. RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L] 


3、將 WordPress RSS 源重定向到 Feedburner

大多數博客作者使用 Feedburner 託管 RSS 種子,以便對博客閱讀進行統計分析。如果你使用 WordPress,你應當會將所有 RSS 訂閱源重定向到 Feedburner 源。修改第二行和第三行代碼,並將代碼拷貝到 .htaccess 中。

  1. <IfModule mod_alias.c>  
  2. RedirectMatch 301 /feed/(atom|rdf|rss|rss2)/?$ http://feeds.feedburner.com/mangguo/  
  3. RedirectMatch 301 /comments/feed/(atom|rdf|rss|rss2)/?$ http://feeds.feedburner.com/mangguo/  
  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、eps 或 xls 文件下載時,你可能需要強制讓客戶端下載而不是讓瀏覽器決定是不是要下載。

  1. <Files *.xls> 
  2. ForceType application/octet-stream  
  3. Header set Content-Disposition attachment  
  4. </Files> 
  5. <Files *.eps> 
  6. ForceType application/octet-stream  
  7. Header set Content-Disposition attachment  
  8. </Files> 


6、記錄 PHP 錯誤

這段代碼將在服務器上創建一個 php_error.log 文件,並將 PHP 文件的錯誤記錄寫入該日誌文件。

  1. # display no errs to user  
  2. php_flag display_startup_errors off  
  3. php_flag display_errors off  
  4. php_flag html_errors off  
  5. # log to file  
  6. php_flag log_errors on  
  7. php_value error_log /location/to/php_error.log 


7、移除 URL 中的文件擴展名

文件擴展名對開發者可能有用,但對於訪客而言,根本毛都沒用。這段代碼將移除 html 文件那一坨一坨的 .html 後綴。當然你也可以用於移除其他類型的文件,比如 php 等。

  1. RewriteEngine on  
  2. RewriteCond %{REQUEST_FILENAME} !-d  
  3. RewriteCond %{REQUEST_FILENAME}\.html -f  
  4. RewriteRule ^(.*)$ $1.html  
  5. # Replace html with your file extension, eg: php, htm, asp 


8、屏蔽網站目錄列表

        目錄列表是在網站找不到默認文件時的應急措施,服務器將毫無保留的返回一個當前目錄下的所有文件。這將給網站帶來非常大的安全隱患。因此,現在 很多程序都會在任何子目錄下面放一個index.htm文件來避免這種疏漏。但是,通過htaccess文件我們可以徹底的解決這個問題。

        在文件中加入以下代碼:

        Options -Indexes

        這將徹底關閉網站的目錄列表功能,但對於網站的正常訪問是沒有任何影響的。如果想顯示文件列表,則只需要將“-”更改爲“+”。如果使用 htaccess在線生成工具,只需要把“是否在沒有默認文檔的目錄顯示文件列表”菜單選擇成“隱藏”即可,程序將自動生成相關代碼。


9、Options -Indexes通過壓縮靜態資源減少頁面大小

瀏覽器中的數據傳輸是可以被壓縮的,客戶端能夠解壓服務端發送的壓縮數據。這段代碼將友好地減少你的頁面大小,並節約帶寬開支。

  1. AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml 
  2. text/javascript text/css application/x-javascript  
  3. BrowserMatch ^Mozilla/4 gzip-only-text/html  
  4. BrowserMatch ^Mozilla/4.0[678] no-gzip  
  5. BrowserMatch bMSIE !no-gzip !gzip-only-text/html 


10、自動爲文件添加 utf-8 編碼

爲了避免編碼問題,你可以通過 .htaccess 文件強制指定編碼。這樣一來,就可以確保 HTML 文檔總能被正確渲染,即便你忘了添加 <meta http-equiv="Content-Type"> 語句。

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


        11、默認入口頁面


  有些虛擬主機就是另類,不適用默認的文件名,或順序非主流。那麼通過以下的代碼就可以自己定義這個頁面的文件名了。比如index.htm 、default.php等等:

  DirectoryIndex index.php

  這行代碼將index.php作爲默認首頁。其他頁面請直接替換例子中的index.php。如果網站有多個頁面需要作爲首頁,請按照 DirectoryIndex index.php index2.php的格式編寫文件。此項設置在htaccess生成器中,僅僅需要你依次填入首頁的文件名即可,非常方便。



  12、通過htaccess開啓網站圖片緩存


  某些虛擬主機限制了網站的流量,如果瀏覽器每次都從服務器下載最常用的圖片文件,將會浪費大量的帶寬。因此可以開啓圖片緩存,瀏覽器在緩存過期前將會自動從緩存區載入圖片文件。此功能在文件中加入以下代碼:

  Header set Cache-Control “max-age=3600″

  需要注意的是,上面的3600單位爲秒,即超時時間,上圖中的gif等爲圖片文件後綴,表示對這些文件生效。如果使用自動生成工具,爲了開啓此選項,請將“開啓站點的圖片緩存”選項卡選擇一個超時時間。目前有十分鐘、一小時、一天等選項可供設置。



  13、固定301、302網頁重定向


  由於頁面轉移位置造成的404錯誤是我們大家都非常頭痛的問題,但我們只需要做一個301的重定向就會完全解決這個問題了。在htaccess文件中加入以下代碼:

  Redirect permanent /old.htm http://www.php100.com

  前面一個參數使用相對路徑,也可以使用目錄名,後一個參數必須填寫完整網址。這樣才能生效,並且不出錯誤。在SEO中,搜索引擎也很快就會按照你的設置,將收錄的網頁更新。



       14、修改PHP設置


  如果我們不能訪問php.ini文件,有些主機服務商允許我們修改.htaccess文件來改變一些PHP設置,例如,我想生成所上傳圖片的縮 略圖,有些主機服務商默認將PHP的內存限制爲2MB,顯然要生成縮略圖是不夠用的,因此我要將這個限制改大一點,如增加到16MB,如果要移除內存限 制,可以將其設爲-1。

  爲了在.htaccess文件中修改PHP設置,服務器必須啓用了AllowOverride Options(或AllowOverride all)選項,如果那樣,我們只需要在.htaccess文件中添加下面一行命令即可:

  php_value memory_limit 16M


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章