.htaccess设置指南经典说明

2019-10-16 10:34:34王旭


保护.htaccess文档  

在使用.htaccess来设置目录的密码保护时,它包含了密码文件的路径。从安全考虑,有必要把.htaccess也保护起来,不让别人看到其中的内容。虽然可以用其他方式做到这点,比如文档的权限。不过,.htaccess本身也能做到,只需加入如下的指令:  

<Files .htaccess>  
order allow,deny  
deny from all  
</Files>  

URL转向  

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

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

或者整个目录的转向:  

Redirect 旧目录 新目录  

改变缺省的首页文件  

一般情况下缺省的首页文件名有default、index等。不过,有些时候目录中没有缺省文件,而是某个特定的文件名,比如在pmwiki中是pmwiki.php。这种情况下,要用户记住文件名来访问很麻烦。在.htaccess中可以轻易的设置新的缺省文件名:  

DirectoryIndex 新的缺省文件名  

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

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

防止盗链  

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

所需要的指令如下:  

RewriteEngine on  
RewriteCond % !^$  
RewriteCond % !^http://(www/.)?mydomain.com/.*$ [NC]  
RewriteRule .(gif|jpg)$ - [F]  

如果觉得让别人的页面开个天窗不好看,那可以用一张图片来代替:  

RewriteEngine on  
RewriteCond % !^$  
RewriteCond % !^http://(www/.)?mydomain.com/.*$ [NC]  
RewriteRule .(gif|jpg)$ http://www.mydomain.com/替代图片文件名 [R,L]


- .htaccess文件(或者"分布式配置文件"提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。  

- 子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。  

- .htaccess必须以ASCII模式上传,最好将其权限设置为644。