全能空间能够实现静态化(3):小结

王志勇 发表于 2011年02月28日 09:46

每写这个标题的文章,就需要先重复声明一下,使用全能空间是不得已,因为国内支持PHP的空间目前绝大多数都是全能空间,这是很可悲的现实,这篇文章并不是鼓励读者使用全能空间,而是相反地鼓励读者使用Linux+PHP空间,因为Linux+Apache+PHP的空间,几乎都是支持.htaccess文件的,使用.htaccess可以直接实现网址静态化。全能空间运行ASP,速度不会受影响;但全能空间运行PHP,在流量大的时候会有很大的瓶颈,全能空间是使用Windows+IIS+PHP,正如前面在本机的实际测试,有HTML代码或文本输出的时候,循环100万次,都是在Windows XP系统下,IIS+PHP运行31秒完成,Apache+PHP使用1秒完成,速度差别如此之大。

对于使用全能空间的PHP用户,只要阅读《全能空间能够实现静态化》第1篇即可,不用阅读第2篇,PHP的实现较容易;对于使用全能空间的ASP用户,如果想实现静态化,需要阅读第1篇和第2篇。并且,需要认真通读,一定要阅读“说明”的部分。阅读这一两篇文章,是否值得?很值得,因为这项功能的重要性大家都知道,这里用一两篇的篇幅免费分享给读者。过去很少人能够在全能空间下实现静态化,因为全能空间不支持.htaccess文件;也可能有人通过.config文件在Windows下实现了静态化。但是国内的主机商可能有很多人不会做.config文件的相关的设置,我也没有成功过。也许你在这一家主机商支持.config文件,当换到另一家时,他们又不支持,而且又无法配置,这样就会相当的麻烦,要么再换一家主机商,要么放弃静态化,把整个站点的超链接改为动态地址,工作量相当大。并且,国内大多数的Windows主机商,可能不支持.config文件。

利用IIS的404错误页,是一个不错的解决方案,因为多数主机商都能够支持。在建立第1篇、第2篇的404.php之前,需要做这2个步骤的测试:

1、404.php这个文件先不要写入程序,随便写入一段文章,然后通过http://www.yourdomain.com/abc/或http://www.yourdomain.com/abc/1234等方式,测试一下能否访问。如果能够访问,说明404.php已经生效。

2、404.php需要先写入这句来测试,这是决定能否成功的关键:
<?=$_SERVER['REQUEST_URI']?>

然后通过http://www.yourdomain.com/abc/或http://www.yourdomain.com/abc/1234等方式来访问,这时候输出的结果是地址栏。在本机或服务器的Apache环境下输出的值是以/开头的,如/abc/1234。IIS环境下可能是很长的路径,如果是这种情况,需要把第1篇、或第2篇404.php的程序中的$j[1].php,改为$j[4].php或者其它的值,逐一在服务器测试,一定可以成功,这是因为在不同的Windows服务器环境下$_SERVER['REQUEST_URI']输出的值不同造成的,而Apache环境下则不会出现这个问题。另外,404.php程序中的$j[1].php,是我在本机建立虚拟主机的环境下测试,如果你没有在本机建立虚拟主机,而是虚拟目录的方式,用http://localhost/site/的方式访问,则要把$j[1].php改为$j[2].php、或$j[3].php等值,依次测试;上传到服务器后仍然要依次测试。

5条评论:
1   lohu 2011-02-28 21:44
收藏了,慢慢研究
2   GoodCMD 2011-03-01 22:07
IIS 不支持 $_SERVER['REQUEST_URI']
3   自由勇 2011-03-02 08:22
IIS自身是不支持$_SERVER['REQUEST_URI']的,但在服务器上IIS+PHP能够支持,因为$_SERVER['REQUEST_URI']是PHP的语句,在服务器上我已经测试成功了。如果不支持的话,这3篇介绍的方法,都无法实现。我测试的全能空间,能够支持404.php的运行。
在本机的IIS下让错误页404.php运行,直接在IIS下设置错误页不能运行,由于时间的关系,我没有找到方法,在本机中我是用Apache+PHP+本机虚拟主机的环境做测试,然后上传到IIS+PHP的服务器,直接可以成功,不会有影响。
4   GoodCMD 2011-03-02 14:20
不好意思,勇哥,IIS有不支持$_SERVER['REQUEST_URI']变量的情况,但不全是,根据配置不同而不同。有兴趣可以看一下我的评测:PHP $_SERVER['REQUEST_URI'] 不被支持的原因 http://blog.goodcmd.com/v1675.htm

顺便向您求证一下,你的php是哪个版本,是4.4 还是 5.2.5 ?

5   自由勇 2011-03-02 14:32
我测试的服务器环境是PHP 5.2.9-2。

发表评论:
名字: (*必填)
博客: (可省)

正文:

  记住信息?

王志勇:1980-09-26 (44周岁)
程序设计,前端设计。

版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。

与此相关的链接
自由勇专栏

Blog存档 Archives

2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +

2020年 +
2019年 +
2018年 +
2016年-2017年(9)
2014年06月-09月(10)
2013年 +
2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

Copyright © 2006-2024 auiou.com All rights reserved.
此Blog程序由王志勇编写