通常申请的免费空间都有不少的限制,比如下面这个DA面板,竟然坑爹到连错误日志都没有。 没有错误日志,当网站访问出现问题如何修复都不知道从何入手。 某免费空间的DA面板 其实面板坑无所谓,但是如果连函数都限制得很厉害的话,可能连网站程序都不能安装。可是就是那些限制得很死的空间才可能存活得就,像那些标着Unlimited的东西,基本上活不了几年。 。 。

虽说限制的很死,但是强大的中国劳动人民总能想出各种突破限制的办法。

而今天我的突破口是.htaccess文件。 一般网上写.htaccess文件的功能都分为以下7类,符合本文主题的有3、4、7

  1. URL转向
  2. htaccess网址规范化
  3. 错误文档的定位
  4. 改变缺省的首页文件
  5. 阻止爬虫
  6. 文档访问的密码保护
  7. 防止盗链
  8. pr劫持
  9. 今天我还要说到:通过.htaccess修改php.ini的某些参数

一、错误文档(页面)的定位

平常的面板一般只允许修改错误提示页面的html代码,而不允许定义位置,但是很多时候我们的错误提示页面都是放在某一个统一的文件夹当中,这是后就得用到htaccess中的ErrorDocument。

  1. ErrorDocument 404 /errors/filenotfound.html
  2. ErrorDocument 500 /errors/internalerror.html

一条指令一行。上述第一条指令的意思是对于404,也就是没有找到所需要的文档的时候得显示页面为/errors目录下的filenotfound.html页面。不难看出语法格式为:

  1. ErrorDocument 错误代码/资料夹/档案.拓展名

并且,还可以用指定错误页面的绝对路径

  1. ErrorDocument 404 http://doufu.ru/404.shtml

如果所需要提示的信息很少的话,不必专门制作页面,直接在指令中使用HTML好了,例如下面这个例子(不支持中文编码的空间不要这样做):

  1. ErrorDocument 404 "顶,荡失路Tim!"

另外 常用的客户端请求错误返回代码:

  1. 401 Authorization Required
  2. 403 Forbidden
  3. 404 Not Found
  4. 405 Method Not Allowed
  5. 408 Request Timed Out
  6. 411 Content Length Required
  7. 412 Precondition Failed
  8. 413 Request Entity Too Long
  9. 414 Request URI Too Long
  10. 415 Unsupported Media Type

常见的服务器错误返回代码:

  1. 500 Internal Server Error

二,改变缺省的首页

我用的收费空间都的控制面板没这个功能,坑,如果是小白怎么办? 这个跟指定错误页面类似

  1. DirectoryIndex 新的缺省文件名

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

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

三、防止盗链

盗链的行为很可恶,不但占用了你的空间的带宽,还耗费你的流量,免费空间的带宽流量都是有不少的限制的。不过这个好像不少的cPanel面板的免费空间都有,叫Hotlink Protection。 若你的免费空间没有,所需要的指令如下:

  1. DirectoryIndex filename.html index.cgi index.pl

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

  1. RewriteEngine on
  2. RewriteCond % !^$​​
  3. RewriteCond % !^http://(www.)?yourdomain.com…*$ [NC]
  4. RewriteRule .(gif|jpg|png|bmp)$ http://www.yourdomain.com/替代图片[R,L]

四、通过.htaccess修改php.ini的某些参数

上面的好多PHP程序都有这个功能,下面才是重点。 上次我在1米的免​​​​费空间安装DZ遇到了short_open_tag()函数不可用,这个当时我是没辙了,后来在浏览别人博客的时候,提到htaccess可以修改某些php.ini里的参数,他没有具体说明,我怀着美好的愿望谷歌去了,还真给我找到办法了,原网页忘记了,是个鸟文的,谷歌翻译过来的文字看了半天才懂,我就把我懂的东西写上来了。 htaccess_phpinfo 若我像启用short_open_tag()这个函数,代码如下

  1. php_flag short_open_tag on

下面是一些代码示例

关闭错误显示:

  1. php_flag display_startup_errors off
  2. php_flag display_errors off
  3. php_flag html_errors off
  4. php_value docref_root 0
  5. php_value docref_ext 0
  6. //php_value 也是设定参数值

只显示PHP错误

  1. php_flag display_errors on
  2. php_flag display_startup_errors on
  3. php_value error_reporting 2047

把错误保存到日志文件中:

  1. php_flag log_errors on
  2. php_value error_log /home/path/public_html/domain/PHP_errors.log

设置脚本超时时间:

  1. php_value max_execution_time 600
  2. #600的单位是毫秒

PS:只能用于PHP_INI_ALL 或PHP_INI_PERDIR 类型的指令,其它的不行。

总结

1、这个.htaccess文件的确很强大,不过得写代码,这里推荐一个在线编辑器

http://cooletips.de/htaccess/

看不懂英文的可以用这个:

http://tool​​.aapple.info/htaccess/

2、有的变态空间会检查.htaccess文件,像这种变态空间就不要用了(不过也没几个) 3、其实.htaccess还有更多功能,不过我用不上,就不介绍了。