来源:http://www.jbxue.com/article/7127.htm http://www.yzznl.cn/archives/260.html
很多站长都见到过.htaccess文件,但是很多人确实不大清楚它的作用。园子今天就给大家说说.htaccess文件使用方法。
Apache系统中的.htaccess文件(也称“分布式配置文件”)提供了针对目录改变配置的方法,也就是在一个特定的文档目录中放置一个包含指令的文件, 以作用于此目录及其所有子目录。直白的说,.htaccess文件只是一个简单的文档,可以在里面加些简单的命令实现各种不同的设置。
其实大部分主机都支持.htaccess,但实际上你的主机提供商并不会特别声明。一般来说,如果你的主机使用Unix或Linux系统,或任何版本的Apache网络服务器,理论上都是支持.htaccess的,但是有的主机服务商有可能不允许你使用它。判断你的主机是否允许.htaccess,一个很好的方法是看它是否支持文件夹密码保护。为达到此功能,主机服务商需要使用.htaccess(当然,少数情况下他们虽提供密码保护功能,但却并不允许你使用.htaccess)。最好的办法是上传你自己的.htaccess文件看看是否有用,或者直接向你的主机服务商咨询。
.htaccess文件可以做大量的事情,包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件等等。下面园子将列举几个常用的功能与大家分享。
.htaccess文件最常用的功能应该就是自定义404页面了,其操作也非常简单,在.htaccess 文件中加入代码:
|
然后建立一个简单的html404页面并命名 Error.html
把 Error.html放置在网站根目录即可。具体详细设置方法请看:如何设置404页面。
当然,如果你的404文件不在网站的根目录下,你只需要把路径设置为:
|
以下列举了网站上一些最常用的错误类型:
你可以有选择的创建错误时的文件,然后在.htaccess文件里面进行定义(方法和404页面的方法一样),上传到你的网站上即可。
URL转向是.htaccess最有用的功能之一,有时候我们对网站整体进行了重新规划设计,将目录文档进行了转移、改名等操作,在这时搜索引擎或者直接访问就会出错。这时就会用到.htaccess文件将旧的URL转向到新的URL地址来解决这些问题。
我们可能对网站进行重新规划,将文档进行了迁移,或者更改了目录。这时候,来自搜索引擎或者其他网站链接过来的访问就可能出错。这种情况下,可以通过如下指令来完成旧的URL自动转向到新的地址:
|
或者整个目录的转向:
|
这样,任何指向到站点中/olddirectory目录的请求都将被重新指向新的站点,包括附加的额外URL信息。例如有人键入:
http://www.youroldsite.com/olddirecotry/oldfiles/images/image.gif
请求将被重定向到:
http://www.newsite.com/newdirectory/oldfiles/images/image.gif
有时候你可能会针对某个目录设定对应的密码保护,首先要做的是生成一个.htpasswd的文档,然后输入用于访问网站的用户名和密码,格式为:
|
其中“password”的位置应该是加密过的密码。另外需要注意的是.htpasswd文档的位置最好放在www目录之外,这样相对会安全一些。
最后在.htaccess中加入如下指令:
|
这样就完成了使用.htaccess文件实现网站目录密码保护。
注:在使用.htaccess来设置目录的密码保护时,它包含了密码文件的路径。从安全考虑,有必要把.htaccess也保护起来,不让别人看到其中的内容。最简单的方法是在.htaccess文件中加入如下指令即可:
|
其实这个功能也经常用到,有时候你可能要禁止某个或者某段IP访问到你的网站,你就可以通过在.htaccess中加入类似如下的代码来实现:
|
其中的第二行代码为拒绝某个IP,第三行是拒绝某个IP段,也就只要IP地址在220.156.156.0~220.156.156.255 之前的IP段都无法再访问你的站点。如果你想阻止所有人访问该目录,则可以使用:
|
很多站长都会遇到比较郁闷的问题,就是有些人会经常盗链自己网站的图片、软件等资源,这样造成了不必要的流量浪费。想要防止盗链简单的做法是在.htaccess文件加入如下指令:
|
如果你想避免此方法给那些盗链你的网站带来不友好的空白,你可以做一张图片来代替,这张图片也可以适当的宣传你自己的网站。指令如下:
|
这一点也比较常用,如果你的站点是使用PHP来架构的,你可以只想定义index.php为缺省的首页文件,通过.htaccess文件可以轻松做到这点。代码如下:
|
服务器会从左至右进行寻找,检查哪个文档在你的网站目录中存在。先找到的文件即是你网站的缺省首页文件。
最后,园子提醒你需要注意的是.htaccess文件必须以ASCII模式上传,并且子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。 如果你的.htaccess文件有多条指令的话,请注意正确的书写方法是一条指令一行。实在不清楚怎么使用.htaccess文件的话可以试试在线 .htaccess文件生成器,或许会对你有所帮助。
1. 反盗链
防止别人盗用带宽资源的方法:
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?yoursite.com/.*$ [NC]
RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]
2. 防止目录浏览
通过htaccess文件来禁用目录浏览:
Options All -Indexes
3. 301永久重定向
网站URL结构调整时要做301重定向:
Redirect 301 http://www.yoursite.com/article.html http://www.yoursite.com/archives/article
4. 显示个性化的 404 错误页面
设置自定义的错误页面,最简单的方法就是更改htaccess:
ErrorDocument 404 /404.html
5. 设置目录的默认页面
为不同的目录设置不同的默认页面:
DirectoryIndex about.html
6. 基于referer来限制网站访问
当发现有网站给你带来垃圾流量的话,应该屏蔽他们:
RewriteEngine on RewriteCond %{HTTP_REFERER} spamteam.com [NC,OR]
RewriteCond %{HTTP_REFERER} trollteam.com [NC,OR]
RewriteRule .* – [F]
7. 限制PHP上传文件大小
第一个是设置最大的上传文件大小,第二个是设置最大的POST请求大小,第三个PHP脚本最长的执行时间,最后一个是脚本解析上传文件的最长时间:
php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200
8. 压缩文件
你可以通过压缩文件来减少网络流量,也页面装载时间:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
9. 缓存文件
Header set Cache-Control “max-age=2592000″
10. 添加尾部的反斜杠
大家都说添加尾部反斜杠有益于SEO,对seo不是很熟悉:
RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
本文原始链接:http://www.jbxue.com/article/7127.html