[教程]玩转Linux主机之.htaccess文件
《玩转Linux主机系列教程》
一、免费Linux主机
申请手机搞定
二、cPanel控制面板
绑定域名、管理文件、安装程序,告别在线FTP
三、.htaccess文件
自定义错误页、自定义首页、伪静态、设置自定义目录索引、允许或拒绝IP、网站目录加密……
『三、.htaccess文件』
HTTP:HyperText Transfer Protocol:超文本传输协议
HTML:HyperText Mark-up Language:超文本标记语言
同样作为HT系列的一员,.htaccess:HyperText Access:超文本访问控制文件
「在哪里可以使用.htaccess」
“.htaccess是Apache服务器程序提供的一个分布式配置文件,它提供了一个针对目录改变服务器配置的功能。”
几乎所有Linux主机都用Apache做Web服务器,这也就意味着几乎所有Linux主机都可以使用.htaccess。
其实Windows版的Apache也可以用.htaccess,不过需要手动打开。打开.htaccess不属于本教程的范围。我们发现的全部Linux主机都打开了.htaccess功能,可以直接用。
「怎样使用.htaccess」
.htaccess是一种“分布式配置文件”。
“分布式”是针对目录的,也就是说你可以在你想要改变配置的目录里面放一个.htaccess文件,然后它里面的文件、目录的访问就会受到这个文件的控制了。
.htaccess可以做到你能在空间控制面板做到的任何事情,和很多空间控制面板做不到的事情。所以,即使你的Linux主机没有控制面板也没关系,有.htaccess就行了。(cPanel控制面板的部分功能,如索引管理,就是通过操作.htaccess文件实现的)
.htaccess是一个文本文件。也就是说你可以用任何文本编辑器去创建和编辑它。
现在,我们开始吧!
「一、自定义错误页」
步骤:
1.在根目录(或者你想要有自定义错误页的任何目录)建立一个名为.htaccess的文件(别忘了开头的点。Windows无法直接建,可以传服务器上后再重命名。若文件存在就直接打开)
2.用文本编辑器打开它
3.写下一行内容(如果已经有内容,在末尾插入新行):
ErrorDocument 404 /404.php
HTTP404错误:网页不存在。现在,当用户访问你网站上一个不存在的文件时,就会看到你放在根目录下的404.php执行后输出的内容了。你甚至还可以在404.php里写一个邮件发送程序来自动把错误报告给你。
我们再插入一行:
ErrorDocument 500 /500.php
现在500错误也可以友好地处理了。
你可以插入更多的行来为每一个HTTP错误代码添加错误处理文件,这在Windows主机里是很难见到的功能。
如果你的提示语很简单,可以不需要为它们专门制作一个文件。
ErrorDocument 403 "个人隐私,谢绝围观!"
这样就可以了。双引号得是英文的。
「自定义默认首页」
有时候,你必须在根目录安装压流,但是又想让用户访问域名时直接跳转到wap目录,却又不会影响压流的使用。怎么办呢?
我们的解决方案是:
在根目录新建一个文件,index2.php
写上一行内容(不要试图省略空格):
<?php header('Location: wap/'); ?>
然后打开.htaccess,添加一行:
DirectoryIndex index2.php index.php index.htm index.html
注意:Index是index(首字母大写),别搞成L了。还有多项分隔是用空格,不要用逗号。
如果你想要更多默认首页,也可以加上。
保存后,你就可以用 域名 直接跳转到wap目录,而 域名/index.php 可以正常访问压流。
「添加MIME下载类型」
Apache默认空间里的所有文件都可以被下载(包括db3、mdb和dat数据库文件),并且它会首先查扩展名表,如果找不到就自动根据文件内容确定mime(注意,在扩展名表中未定义的文件是根据内容确定mime的。如果你把user.db3移出db目录,它会被认为是一个文本文件,从而使UC直接打开它而不是提示你下载,因为它的内容确实符合一个文本文件。而如果你把一个jpg文件改后缀为.db3再打开会怎样呢,自己试)
为了改变Apache的这种默认行为,即使我们的某个mrp是由文本文件改名来的,也要让UC弹出下载框而不是直接显示,我们可以向扩展名表中添加新的MIME类型,.htaccess中新增一行:
AddType application/mr .mrp
保存。我们的mrp文件现在就用上application/mr类型了。
使用这种方法还可以做一些有趣的事,比如让你的服务器看起来像支持asp:
AddType application/x-httpd-php .asp
而事实上,你的.asp文件会被当成php处理,它必须符合php的语法才能正常运行。
你可以同时设定多个后缀:
AddType application/x-httpd-php .asp .jsp .do .hu60
看了这个之后,当你遇到一个名为liuyan.mp3的网络留言板的时候,就不用奇怪它是用什么语言开发的了。
如果扩展名的mime已经被设置,那么之前的设置将被覆盖。
「奇特用法:禁止访问某目录」
我们知道,.htaccess只对存放它的目录和该目录的子目录生效。
我们也知道,如果写错了.htaccess,那么访问该目录下的所有文件时都会500错误。
所以,如果我们不想某个目录被别人访问,只要往里面放一个错误的.htaccess文件就可以了。
目前的虎绿林就是这么做的,在db目录有一个.htaccess,它的内容如下:
Stop Working!
于是人们在尝试访问db目录下载数据库时,就真的Stop Working了。
注意php引用和打开文件不受.htaccess影响,很显示我们这样做了之后db目录的数据库仍然能够正常使用。
「打开、关闭目录自动索引」
访问new7.hu60.cn/wap/0wap/userfile,你看到的就是目录自动索引。在这种情况下,你可以轻易下载到任何用户的文件。
在.htaccess中增加一行:
Options -Indexes
你再访问那些没有默认首页的目录,就只能得到403错误了。
打开自动索引的方法是:
Options +Indexes
同样的Indexes是indexes,I不是L,而是i的大写。
没过瘾呐…