网上有一篇流传很广的.htaccess的使用说明,不过存在较多错误,这篇文章主要就是纠正几个重要的错误,同时补充一些其他的重要规则。网上那篇修正后的完整版见: http://kb.idcspy.org/Htaccess
1.Blocking users by IP 根据IP阻止用户访问
这个原文有错误,按照原文设置会得到一个500错误,正确的设置是:
<Files 403.shtml>
order allow,deny
allow from all
</Files>
deny from 1.1.1.1 ;写要封的IP
上面的意思是403.shtml不受影响,下面写要封的IP,原文把顺序搞反了。
这个也可以在cpanel中直接操作。
2.Prevent viewing of .htaccess file 防止.htaccess文件被查看
正确的写法:
<Files .htaccess>
order allow,deny
deny from all
</Files>
这个网上的大部分版本都有错误,大部分版本丢掉了<Files .htaccess> ,结果导致所有文件都被禁止访问。如果用了错误的规则,所有内容都将无法访问。
3.规范www
这个是rewrite的重要应用,原文没有
全部统一到带 www,例如将83blog.com 统一到 www.83blog.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^yourdomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [L,R=301]
全部统一到不带www,例如将 www.idcspy.org 统一到 idcspy.org
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.yourdomain\.com$ [NC]
RewriteRule ^(.*)$ http://yourdomain.com/$1 [L,R=301]
wordpress的rewrite规则以及自带了www规范化,会自动将网址定向到后台设置的地址。
4.防止别人的域名解析到自己的独立IP
RewriteEngine On
RewriteCond %{HTTP_HOST} !(^www\.yourdomain\.com$) [NC]
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [L,R=301]
这个可以完成如下几个功能:
1.如果你的网站绑定多个域名,为了只使用一个域名,就可以设置如上规则,例如网站绑定了 www.idcspy.org www.enmabiz.com 那么为了防止重复的url,就可以把上面的域名设置为www.idcspy.org,这样来自www.enmabiz.com所有的访问都会重定向到www.idcspy.org
2.如果你用的是独立IP,那么别人就可以把它的域名解析到你的IP上,这个时候可以用这个规则,其他所有解析到你的IP上的域名都会转向到你设置的域名上。
Tags: .htaccess, 网址规范化, rewrite