PHP转化为HTML静态页面 占个座位先
2 十一 2008
静态化的好处一在于速度的提升,二是对搜索引擎的支持加强。
虽然早就知道页面静态化的好处,但却一直总认为我这么一个小小的blog,用不用都无所谓的,不会有什么明显的差别的。但今天在合租伙伴 Steven 的建议下,还是研究试验了一下,效果远比我想像中要好的多,所以也简单写个东西介绍一下。
首先这要感谢我们租用的国外主机空间,给我们开放了许多的权限,比国内的空间商要强太多了。
方法:(只针对本主机内的wordpress合租伙伴,不保证在其它地方有效!)
1、登录到wordpress后台,“设置”→“永久链接”。
在“自定义结构”中填写永久链接的格式。
其中常用的写法有:
样式:http://www.yourwebsite.com/123.html
写法:/%post_id%.html
样式:http://www.yourwebsite.com/archives/123.html
写法:/archives/%post_id%.html
样式:http://www.yourwebsite.com/2007/09/16/post-name.html
写法:/%year%/%monthnum%/%day%/%postname%.html
样式:http://www.yourwebsite.com/2007/03/post-name.html
写法:/%year%/%monthnum%/%postname%.html
样式:http://www.yourwebsite.com/category/post-name.html
写法: /%category%/%postname%.html
样式:http://www.yourwebsite.com/archives/post-name.html
写法:/archive/%postname%.html
样式:http://www.yourwebsite.com/post-name.html
写法:/%postname%.html说明:
%year% 日志发布的年,4位数字,如:2004
%monthnum% 日志发布的月份,2位数字,如:05
%day% 日志发布当月的第几天,2位数字,如:28
%hour% 日志发布时间中的“小时”,2位数字,如:15
%minute% 日志发布时间中的“分钟”,2位数字,如:43
%second% 日志发布时间中的“秒”,2位数字,如:33
%postname% 一串处理过的日志标题。如,日志标题为“This Is A Great Post!”,那么%postname%表示为“this-is-a-great-post”
%post_id% 日志的唯一编号
%category% 日志所在的分类
%author% 日志的作者
2、可根据喜好选择上面中的其一,保存修改!这时目录下会自动生成.htaccess文件,内容已写好,无需我们再手动修改添加。
3、设置完的永久链接 要等待一会才能生效。
另:今天在研究静态化的时候,先是碰到了 htaccess的问题,这才明白这个文件的强大作用,可惜自己已经没有心思再去研究其更多的用法,等有需要时再考虑下了。这是我找到的一篇文章中相关的一部分,转贴一下:
PHP转化为HTML静态页面
虽然不能保证把每个动态页面都转化为静态的HTML文件,但如果网站是驻留在Apache服务器上,则只需一个简单的小脚本就可以把大多数动态页面都转换成HTML文件。1.确定需要转换成后缀为HTML的PHP文件
我们的目标是那些名下包含动态子页较多的网页。以“index.php?action=show&id=”为例,我们需要对 “index.php”之后的动态子页进行转换。 例如,如果网站里有一个名为“Arts and Crafts”的子目录,URL为“index.php?action=show&id=1”,其它子目录和这个URL只在最后的变量上不同,因此我们需要修改当index.php之后跟随变量时服务器对它的打开方式。2.通知服务器在接受一个HTML页面的调用请求后打开一个PHP文件
我们需要在服务器上index.php所在的目录下放置一个.htaccess文本文件。.htaccess文件是Apache服务器上的一个目录配置设置文件,它提供了针对目录改变配置的方法,即在一特定的文档目录中放置一个包含一个或多个指令的文件(.htaccess文件),来作用于此目录及其所有子目录。.htaccess的功能包括设置网页密码、设置发生错误时出现的文件、改变主页文件名、禁止读取文件名、重新导向文件、增加MIME类别、禁止列目录下的文件等。在需要针对目录改变服务器的配置,而对服务器系统没有root权限时,应该使用.htaccess文件。如果服务器管理员不愿意频繁修改配置,则可以允许用户通过.htaccess文件自己修改配置,尤其是ISP在一台机器上提供多个用户站点,而又希望用户可以自己改变配置的情况下,一般会开放部分.htaccess的功能给使用者自行设置。对于Vdeck用户来说,可能需要先创建一个文本文件,然后在管理面板将其更名为.htaccess。现在我们需要在服务器端指定一些变量。比方说,我需要把“?action=show&id=x”这个变量改成“action-x.html”,这样就能消除动态页面无法被搜索引擎检索的问题。
在开始创建服务器变量前,我们需要先在这个新建的.htaccess文件中创建一个Rewrite Engine (URL重写工具)。只需要在文件第一行写上
RewriteEngine On
这就等于告诉服务器我们要改变一些文件的处理方式。接下来的一行就要指定重写规则:
RewriteRule ^action-([0-9]+)\.html$ index.php?action=show&id=$1 [L,NC]
这个指令表明:只要接到URL中包含“action-0.html”到“action-9.html”的任意静态网页的页面调用请求,服务器将以“index.php?变量”地址返回给调用用户。先别急着编辑下一条改写规则,我们有必要在更改实际的PHP页面之前先进行一下测试。我们可以对上面的”重写规则”进行测试。首先新开一个浏览器窗口,在地址栏中输入“action-1.html”,如果我们看到的页面显示为“index.php?action=show&id=1”就表明改写规则工作正常。
3.让搜索引擎看到我们的静态化页面
现在,我们需要让搜索引擎能够看到我们经过“改头换面”的新的网页地址。那么,是不是需要赶紧把网站再向搜索引擎提交一遍呢? 不用这么费劲,我们只需打开PHP文件编辑一下就行了。不过在此之前,应记得将要修改的每个脚本都做个备份,将其存放在硬盘上。然后需要确定创建更改链接地址的程序的不同地方。最好在前端而不要在后台进行更改。PHP文件将会从.htaccess文件中得到形如 “index.php?action=show&id=x”之类的信息。我们需要把这些动态生成的网页地址更改一下,并以静态化页面地址显示给用户和搜索引擎。即将所有URL中包含“index.php?action=show&id=”的部分替换为“action-”,并加上.html 后缀。一旦发现待修改的区域,在更改后要随时检查有无错误。如果在脚本中有错误而没有发现,纠正起来是相当棘手的,尤其在对PHP编码不熟悉的情况下。

看看
http://www.tongxunshe.com/ 通讯社时尚关注
[回复]