分享10個(gè)實(shí)用的.htaccess代碼片段
下面介紹了10個(gè)實(shí)用的.htaccess代碼片段。
1、除 URL 中的 www
出于 SEO 考慮,你可能期望移除 URL 中的 www 前綴。以下代碼實(shí)現(xiàn)了這個(gè)功能,并將所有帶 www 的地址重定向到無(wú) www 一級(jí)域名。
- RewriteEngine On
- RewriteCond %{HTTP_HOST} !^mangguo.org$ [NC]
- RewriteRule ^(.*)$ http://mangguo.org/$1 [L,R=301]
來(lái)源:http://css-tricks.com/snippets/htaccess/www-no-www/
2、防止盜鏈
盜鏈通常被認(rèn)為是可恥行為。當(dāng)你被別人盜鏈,別人將免費(fèi)使用你那昂貴的帶寬,不是小氣,是帶寬費(fèi)用傷不起啊傷不起。要防止盜鏈僅需添加使用以下代碼:
- RewriteEngine On
- #將 ?mangguo\.org/ 替換成你的博客地址
- RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mangguo\.org/ [NC]
- RewriteCond %{HTTP_REFERER} !^$
- #將 /images/nohotlink.jpg 替換成“請(qǐng)勿盜鏈”圖片地址
- RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]
3、將 WordPress RSS 源重定向到 Feedburner
大多數(shù)博客作者使用 Feedburner 托管 RSS 種子,以便對(duì)博客閱讀進(jìn)行統(tǒng)計(jì)分析。如果你使用 WordPress,你應(yīng)當(dāng)會(huì)將所有 RSS 訂閱源重定向到 Feedburner 源。修改第二行和第三行代碼,并將代碼拷貝到 .htaccess 中。
- <IfModule mod_alias.c>
- RedirectMatch 301 /feed/(atom|rdf|rss|rss2)/?$ http://feeds.feedburner.com/mangguo/
- RedirectMatch 301 /comments/feed/(atom|rdf|rss|rss2)/?$ http://feeds.feedburner.com/mangguo/
- </IfModule>
來(lái)源:http://www.wprecipes.com/how-to-redirect-wordpress-rss-feeds-to-feedburner-with-htaccess
4、創(chuàng)建自定義錯(cuò)誤頁(yè)
看煩了老舊的錯(cuò)誤頁(yè)面?那就親手實(shí)踐下制作自定義錯(cuò)誤頁(yè)吧。將這些個(gè)性錯(cuò)誤頁(yè)上傳到主機(jī),然后添加以下代碼:
- ErrorDocument 400 /errors/badrequest.html
- ErrorDocument 401 /errors/authreqd.html
- ErrorDocument 403 /errors/forbid.html
- ErrorDocument 404 /errors/notfound.html
- ErrorDocument 500 /errors/serverr.html
來(lái)源:http://css-tricks.com/snippets/htaccess/custom-error-pages/
5、強(qiáng)制下載指定文件
當(dāng)提供一些類似 MP3、eps 或 xls 文件下載時(shí),你可能需要強(qiáng)制讓客戶端下載而不是讓瀏覽器決定是不是要下載。
- <Files *.xls>
- ForceType application/octet-stream
- Header set Content-Disposition attachment
- </Files>
- <Files *.eps>
- ForceType application/octet-stream
- Header set Content-Disposition attachment
- </Files>
來(lái)源:http://www.givegoodweb.com/post/30/forcing-a-download-with-apache-and-htaccess
6、記錄 PHP 錯(cuò)誤
這段代碼將在服務(wù)器上創(chuàng)建一個(gè) php_error.log 文件,并將 PHP 文件的錯(cuò)誤記錄寫入該日志文件。
- # display no errs to user
- php_flag display_startup_errors off
- php_flag display_errors off
- php_flag html_errors off
- # log to file
- php_flag log_errors on
- php_value error_log /location/to/php_error.log
來(lái)源:http://css-tricks.com/snippets/htaccess/php-error-logging/
7、移除 URL 中的文件擴(kuò)展名
文件擴(kuò)展名對(duì)開(kāi)發(fā)者可能有用,但對(duì)于訪客而言,根本毛都沒(méi)用。這段代碼將移除 html 文件那一坨一坨的 .html 后綴。當(dāng)然你也可以用于移除其他類型的文件,比如 php 等。
- RewriteEngine on
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteCond %{REQUEST_FILENAME}\.html -f
- RewriteRule ^(.*)$ $1.html
- # Replace html with your file extension, eg: php, htm, asp
來(lái)源:http://eisabainyo.net/weblog/2007/08/19/removing-file-extension-via-htaccess
8、防止目錄列表
在你的 web 服務(wù)器上,當(dāng)一個(gè)目錄沒(méi)有索引文件,apache 自動(dòng)會(huì)為當(dāng)前目錄中所有文件創(chuàng)建索引列表。如果你不希望別人看到這些文件,可以添加以下代碼來(lái)阻止自動(dòng)目錄列表。
9、Options -Indexes通過(guò)壓縮靜態(tài)資源減少頁(yè)面大小
瀏覽器中的數(shù)據(jù)傳輸是可以被壓縮的,客戶端能夠解壓服務(wù)端發(fā)送的壓縮數(shù)據(jù)。這段代碼將友好地減少你的頁(yè)面大小,并節(jié)約帶寬開(kāi)支。
- AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml
- text/javascript text/css application/x-javascript
- BrowserMatch ^Mozilla/4 gzip-only-text/html
- BrowserMatch ^Mozilla/4.0[678] no-gzip
- BrowserMatch bMSIE !no-gzip !gzip-only-text/html
10、自動(dòng)為文件添加 utf-8 編碼
為了避免編碼問(wèn)題,你可以通過(guò) .htaccess 文件強(qiáng)制指定編碼。這樣一來(lái),就可以確保 HTML 文檔總能被正確渲染,即便你忘了添加 <meta http-equiv="Content-Type"> 語(yǔ)句。
- <FilesMatch "\.(htm|html|css|js)$">
- AddDefaultCharset UTF-8
- </FilesMatch>
來(lái)源:http://www.askapache.com/htaccess/setting-charset-in-htaccess.html
希望本文的介紹,能夠給你帶來(lái)幫助。
【編輯推薦】