分享10个实用的.htaccess代码片段
创始人
2024-08-02 20:40:41
0

下面介绍了10个实用的.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] 

 

来源:http://css-tricks.com/snippets/htaccess/www-no-www/

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.  
  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.  

 

来源:http://www.wprecipes.com/how-to-redirect-wordpress-rss-feeds-to-feedburner-with-htaccess

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 

 

来源:http://css-tricks.com/snippets/htaccess/custom-error-pages/

5、强制下载指定文件

当提供一些类似 MP3、eps 或 xls 文件下载时,你可能需要强制让客户端下载而不是让浏览器决定是不是要下载。

 

  1.  
  2. ForceType application/octet-stream  
  3. Header set Content-Disposition attachment  
  4.  
  5.  
  6. ForceType application/octet-stream  
  7. Header set Content-Disposition attachment  
  8.  

 

来源:http://www.givegoodweb.com/post/30/forcing-a-download-with-apache-and-htaccess

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 

 

来源:http://css-tricks.com/snippets/htaccess/php-error-logging/

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 

 

来源:http://eisabainyo.net/weblog/2007/08/19/removing-file-extension-via-htaccess

8、防止目录列表

在你的 web 服务器上,当一个目录没有索引文件,apache 自动会为当前目录中所有文件创建索引列表。如果你不希望别人看到这些文件,可以添加以下代码来阻止自动目录列表。

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 文档总能被正确渲染,即便你忘了添加 语句。

 

  1.  
  2. AddDefaultCharset UTF-8  
  3.  

 

来源:http://www.askapache.com/htaccess/setting-charset-in-htaccess.html

希望本文的介绍,能够给你带来帮助。

【编辑推荐】

  1. 浅谈XML在Web中的应用
  2. Web 2.0 用户界面技术
  3. 2011年Web开发者必须掌握的10大技能
  4. ASP.NET配置文件Web.config详细解释
  5. web开发:如何使你的作品展示优于竞争对手

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...