一般来说, 搜索引擎会把动态网页地址中出现的 “?” 字符视做 “ 停止标记 ”, 在它之后的所有参数都会被忽略掉。例如对 “index.php?category=x” 的所有子页 , 搜索引擎最后检索到的 url 只有一个 , 那就是 index.php 这一个页面。这样一来 , 动态网页就陷入了无法被搜索引擎发现和检索的尴尬境地 , 直接失去了被用户发现的机会和搜索引擎这样一个广阔的市场空间。
搜索引擎不支持动态网页的原因
动态网页是由数据库所驱动, 这就使得搜索引擎将面对无数 url 而被数据库套住陷入死循环的危险 , 这也就是我们所说的蜘蛛陷阱 (spider traps) 。而且一旦 spider 被网站套住 , 那么它对数据库的重复访问请求也会造成网站服务器系统的彻底瘫痪。鉴于此 , 搜索引擎对于动态网页中 url 里包含 “?” 之后的字符一概不予读取。
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 之后跟随变量时服务器对它的打开方式。
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 后缀。
一旦发现待修改的区域, 在更改后要随时检查有无错误。如果在脚本中有错误而没有发现 , 纠正起来是相当棘手的 , 尤其在对 php 编码不熟悉的情况下。
以上就是如何将php动态网页转换成html?的详细内容,更多请关注Gxl网其它相关文章!
查看更多关于如何将php动态网页转换成html?的详细内容...