PHP转化为HTML静态页面
虽然不能保证把每个动态页面都转化为静态的HTML文件,但如果网站是驻留在Apache服务器上,则只需一个简单的小脚本就可以把大多数动态页面都转换成HTML文件。

1.确定需要转换成后缀为HTML的PHP文件
我们的目标是那些名下包含动态子页较多的网页。以“index.php?category=x”为例,我们需要对“index.php”之后的动态子页进行转换。 例如,如果网站里有一个名为“Arts and Crafts”的子目录,URL为“index.php?category=1”,其它子目录和这个URL只在最后的变量上不同,因此我们需要修改当index.php之后跟随变量时服务器对它的打开方式。

相关推荐:《php教程》

2.通知服务器在接受一个HTML页面的调用请求后打开一个PHP文件
我们需要在服务器上index.php所在的目录下放置一个.htaccess文本文件。.htaccess文件是Apache服务器上的一个目录配置设置文件,它提供了针对目录改变配置的方法,即在一特定的文档目录中放置一个包含一个或多个指令的文件(.htaccess文件),来作用于此目录及其所有子目录。.htaccess的功能包括设置网页密码、设置发生错误时出现的文件、改变主页文件名、禁止读取文件名、重新导向文件、增加MIME类别、禁止列目录下的文件等。

在需要针对目录改变服务器的配置,而对服务器系统没有root权限时,应该使用.htaccess文件。如果服务器管理员不愿意频繁修改配置,则可以允许用户通过.htaccess文件自己修改配置,尤其是ISP在一台机器上提供多个用户站点,而又希望用户可以自己改变配置的情况下,一般会开放部分.htaccess的功能给使用者自行设置。对于Vdeck用户来说,可能需要先创建一个文本文件,然后在管理面板将其更名为.htaccess。现在我们需要在服务器端指定一些变量。比方说,我需要把“?category=x”这个变量改成“directory-x.html”,这样就能消除动态页面无法被搜索引擎检索的问题。

在开始创建服务器变量前,我们需要先在这个新建的.htaccess文件中创建一个Rewrite Engine (URL重写工具)。只需要在文件第一行写上:

RewriteEngine On

这就等于告诉服务器我们要改变一些文件的处理方式。接下来的一行就要指定重写规则:

RewriteRule ^directory-([0-9]*.* index.php?category=$1 [L,NC]

这个指令表明:只要接到URL中包含“directory-0”到“directory-9”的任意静态网页的页面调用请求,服务器将以“index.php?变量”地址返回给调用用户。

先别急着编辑下一条改写规则,我们有必要在更改实际的PHP页面之前先进行一下测试。我们可以对上面的"重写规则"进行测试。首先新开一个浏览器窗口,在地址栏中输入“directory-1.htm”或“directory-1.html”,如果我们看到的页面显示为“index.php?category=1”就表明改写规则工作正常。

3.让搜索引擎看到我们的静态化页面
现在,我们需要让搜索引擎能够看到我们经过“改头换面”的新的网页地址。那么,是不是需要赶紧把网站再向搜索引擎提交一遍呢? 不用这么费劲,我们只需打开PHP文件编辑一下就行了。不过在此之前,应记得将要修改的每个脚本都做个备份,将其存放在硬盘上。然后需要确定创建更改链接地址的程序的不同地方。最好在前端而不要在后台进行更改。PHP文件将会从.htaccess文件中得到形如“index.php?category=x”之类的信息。我们需要把这些动态生成的网页地址更改一下,并以静态化页面地址显示给用户和搜索引擎。即将所有URL中包含“index.php?category=”的部分替换为“directory-”,并加上.html后缀。

更多相关文章

  1. php文件上传步骤是什么
  2. php如何获取上传文件大小
  3. php引入文件的四个方法
  4. php页面传值的方法
  5. PHP实时生成并下载超大数据量的EXCEL文件
  6. PHP实现文件上传下载实例详细讲解
  7. php怎么启动exe文件
  8. PHP高性能Excel扩展1.2.8发布,文件读取数据类型可控!
  9. PHP 中使用 TUS 协议来实现大文件的断点续传

随机推荐

  1. Android MTK Launcher3 替换桌面图标
  2. 设置TextView超过一定长度后显示省略号
  3. android 通过uri启动Activity
  4. Android获取所有安装APP信息的详细代码
  5. android从网站获取json接口数据并放置到s
  6. Android(安卓)之Notification 用法
  7. android 退出机制
  8. Android(安卓)常用开发框架
  9. Android(安卓)CDMA分支
  10. Android 2.2 单点触摸支持的问题