快捷搜索:   nginx

说说.htaccess


发布者:Aiens  发布时间:2009-07-21 17:12:47  来源:Aiens.cn  字体:[ 大 中 小 ]

(注意:如无特殊说明,本站所有内容均为原创,转载请保留版权!)

什么是 .htaccess?

.htaccess文件(或者"分布式配置文件")提供了针对每个目录改变配置的方法,即在一个特定的目录中放置一个包含指令的文件,其中的指令作用于此目录及其所有子目录。


如何创建一个.htaccess?

.htaccess是一个特殊的文件,在Windows系统中是不可以直接通过“新建”文件来创建的,不过我们可以利用cmd中的copy来实现,如copy sample.txt .htaccess 。也可以先创建一个htaccess.txt或者1.htaccess,然后上传到服务器,通过FTP来修改文件名。


.htaccess能干什么?


1.自定义错误页

ErrorDocument errornumber /file.html

errornumber:错误代码(404.,500,401等)
/file.html:用来自定义错误的文档    举例来说,如果我的根目录下有一个404.html文件,我想使用它作为404 error的页面:
  ErrorDocument 404 /notfound.html
-----------------------------------------------------------------------------
2.禁止显示目录列表

如果你的目录里没有index文件,这就意味着当有人在浏览器地址栏键入了该目录的路径,该目录下所有的文件都被会显示出来,这会给你的网站留下安全隐患。为避免这种情况(而不必创建一堆的新index文件),你可以在你的.htaccess文档中键入以下命令,用以阻止游客访问你的目录。

Options -Indexes

-----------------------------------------------------------------------------
3.阻止/允许特定的IP地址

某些情况下,你可能只想允许某些特定IP的用户可以访问你的网站(例如:只允许使用特定ISP的用户进入某个目录),或者想封禁某些特定的IP地址(例如:将低级用户隔离于你的信息版面外)。当然,这只在你知道你想拦截的IP地址时才有用,然而现在网上的大多数用户都使用动态IP地址,所以这并不是限制使用的常用方法。

你可以使用以下命令封禁一个IP地址:

deny from 000.000.000.000

这里的000.000.000.000是被封禁的IP地址,如果你只指明了其中的几个,则可以封禁整个网段的地址。如你输入210.10.56. ,则将封禁210.10.56.0~210.10.56.255的所有IP地址。

你可以使用以下命令允许一个IP地址访问网站:

allow from 000.000.000.000
被允许的IP地址则为000.000.000.000,你可以象封禁IP地址一样允许整个网段。

如果你想阻止所有人访问该目录,则可以使用:

deny from all

-----------------------------------------------------------------------------
4.文档访问的密码保护

-----------------------------------------------------------------------------
5.URL转向

我们可能对网站进行重新规划,将文档进行了迁移,或者更改了目录。这时候,来自搜索引擎或者其他网站链接过来的访问就可能出错。这种情况下,可以通过如下指令来完成旧的URL自动转向到新的地址:

Redirect /旧目录/旧文档名 新文档的地址

或者整个目录的转向:

Redirect 旧目录 新目录


-----------------------------------------------------------------------------
6.设置缺省的首页文件

DirectoryIndex 新的缺省文件名

也可以列出多个,顺序表明它们之间的优先级别,例如:

DirectoryIndex filename.html index.cgi index.pl default.htm


----------------------------------------------------------------------------
7.防止盗链

如果不喜欢别人在他们的网页上连接自己的图片、文档的话,也可以通过htaccess的指令来做到。

所需要的指令如下:

 
RewriteEngine on  
RewriteCond %{ HTTP_REFERER } !^$  
RewriteCond %{ HTTP_REFERER } !^http://(www.)?aiens.cn/.*$ [NC]  
RewriteRule .(gif&line;jpg)$ - [F]

 


或者用其他的来替代

RewriteEngine on  
RewriteCond %{ HTTP_REFERER } !^$  
RewriteCond %{ HTTP_REFERER } !^http://(www.)?aiens.cn/.*$ [NC]
RewriteRule .(gif&line;jpg)$ http://www.aiens.cn/替代的目录或者文档 [R,L] 


----------------------------------------------------------------------------

另:

子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。
.htaccess必须以ASCII模式上传,最好将其权限设置为644。 


顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论