热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php动态网页怎么转换成html

虽然动态网页相比于静态页面拥有许多优势,但它在搜索引擎的检索上却碰了个大钉子。无论任何一家网站,尤其是那些以营销为目的的企业网站,没有谁会希望自己的网页无法被搜索引擎检索到。但事实上却是:动态网站设计的很多内容页面都无法得到搜索引擎的检索。获取更多php视频教程请关注微信公众号(若鸿网)。

当动态网页遇上搜索引擎

  虽然动态网页相比于静态页面拥有许多优势,但它在搜索引擎的检索上却碰了个大钉子。无论任何一家网站,尤其是那些以营销为目的的企业网站,没有谁会希望自己的网页无法被搜索引擎检索到。但事实上却是:动态网站设计的很多内容页面都无法得到搜索引擎的检索。获取更多php视频教程请关注微信公众号(若鸿网)。

  一般来说,搜索引擎会把动态网页地址中出现的“?”字符视做停止标记”,在它之后的所有参数都会被忽略掉。例如对“index.php?category=x”的所有子页,搜索引擎最后检索到的url只有一个,那就是index.php这一个页面。这样一来,动态网页就陷入了无法被搜索引擎发现和检索的尴尬境地,直接失去了被用户发现的机会和搜索引擎这样一个广阔的市场空间。

  搜索引擎不支持动态网页的原因

  动态网页是由数据库所驱动,这就使得搜索引擎将面对无数url而被数据库套住陷入死循环的危险,这也就是我们所说的蜘蛛陷阱(spider traps)。而且一旦spider被网站套住,那么它对数据库的重复访问请求也会造成网站服务器系统的彻底瘫痪。鉴于此,搜索引擎对于动态网页中url里包含“?”之后的字符一概不予读取。

  php转化为html静态页面

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

  1.确定需要转换成后缀为htmlphp文件

  我们的目标是那些名下包含动态子页较多的网页。以“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视频教程请关注微信公众号(若鸿网)。


推荐阅读
  • 利用Apache构建高效稳定的Web服务器环境
    本文详细介绍了如何利用Apache构建高效稳定的Web服务器环境。首先,概述了Apache服务器的基本概念及其安装步骤,并深入探讨了相关配置文件的设置方法。接着,通过具体的实验环境示例,展示了服务端(域名:zhangpp63.cn,IP地址:192.168.1.63)和客户端的配置过程,确保读者能够全面理解并实际应用这些技术。此外,还提供了一些优化建议,以提高服务器的性能和稳定性。 ... [详细]
  • Python 实战:异步爬虫(协程技术)与分布式爬虫(多进程应用)深入解析
    本文将深入探讨 Python 异步爬虫和分布式爬虫的技术细节,重点介绍协程技术和多进程应用在爬虫开发中的实际应用。通过对比多进程和协程的工作原理,帮助读者理解两者在性能和资源利用上的差异,从而在实际项目中做出更合适的选择。文章还将结合具体案例,展示如何高效地实现异步和分布式爬虫,以提升数据抓取的效率和稳定性。 ... [详细]
  • FastDFS Nginx 扩展模块的源代码解析与技术剖析
    FastDFS Nginx 扩展模块的源代码解析与技术剖析 ... [详细]
  • PHP开发人员薪资水平分析:工程师平均工资概况
    PHP开发人员薪资水平分析:工程师平均工资概况 ... [详细]
  • 如何在Mac上构建高效的本地服务器环境
    在Mac上构建高效的本地服务器环境,首先需要了解基本步骤:1. 配置目录基础;2. 启动Apache服务;3. 添加自定义文档至本地服务器;4. 查看自定义效果。此外,还可以通过手机或其他电脑访问本机服务器,以确保跨设备的兼容性和调试效果。Mac系统自带的Apache服务为本地开发提供了便捷的工具,本文将详细介绍每个步骤的具体操作方法。 ... [详细]
  • 【Linux进阶指南】第一阶段第三课:体验与部署Ubuntu系统
    在正式踏上Linux学习之旅之前,本课程将引导你深入体验和部署Ubuntu系统。通过详细的操作步骤和实践演练,你将掌握Ubuntu的基本安装、配置及常用命令,为后续的进阶学习打下坚实的基础。此外,课程还将介绍如何解决常见问题和优化系统性能,帮助你更加高效地使用Ubuntu。 ... [详细]
  • 【Linux】CentOS 7 远程连接指南:高效安全的远程管理方法
    在 CentOS 7 中实现高效且安全的远程管理,本文详细介绍了如何检查和安装配置 OpenSSH。首先,通过 `yum list installed` 命令检查系统是否已安装 OpenSSH,若未安装,则使用 `yum install openssh-server` 进行安装。随后,配置 SSH 服务以确保其安全性和稳定性,包括修改默认端口、禁用 root 登录等关键步骤。此外,还提供了常见问题的解决方案,帮助用户顺利进行远程连接。 ... [详细]
  • 利用树莓派畅享落网电台音乐体验
    最近重新拾起了闲置已久的树莓派,这台小巧的开发板已经沉寂了半年多。上个月闲暇时间较多,我决定将其重新启用。恰逢落网电台进行了改版,回忆起之前在树莓派论坛上看到有人用它来播放豆瓣音乐,便萌生了同样的想法。通过一番调试,终于实现了在树莓派上流畅播放落网电台音乐的功能,带来了全新的音乐享受体验。 ... [详细]
  • 二叉树的直径是指树中任意两个叶节点之间最长路径上的节点数量。本文深入解析了计算二叉树直径的算法,并提出了一种优化方法,以提高计算效率和准确性。通过详细的案例分析和性能对比,展示了该优化算法在实际应用中的优势。 ... [详细]
  • 本文全面解析了 gRPC 的基础知识与高级应用,从 helloworld.proto 文件入手,详细阐述了如何定义服务接口。例如,`Greeter` 服务中的 `SayHello` 方法,该方法在客户端和服务器端的消息交互中起到了关键作用。通过实例代码,读者可以深入了解 gRPC 的工作原理及其在实际项目中的应用。 ... [详细]
  • 利用CSV Data Set Config实现JMeter参数化测试的详细指南
    本文详细介绍了如何使用JMeter中的CSV Data Set Config元素来实现参数化测试。通过该配置元件,用户可以轻松地从外部CSV文件中读取数据,从而提高测试的灵活性和可扩展性。文章不仅提供了具体的配置步骤,还结合实际案例,展示了如何在不同的测试场景中应用这一功能,帮助读者更好地理解和掌握JMeter参数化测试的技巧。 ... [详细]
  • 利用 Spring BeanUtils 实现 JavaBean 的深度克隆与属性复制 ... [详细]
  • Hired网站最新发布的开发者调查显示,Python 语言继续受到开发者的广泛欢迎,而 PHP 则被评为最不受欢迎的语言。该报告基于 Hired 数据科学团队对 13 个城市中 9800 名开发者的调查数据,深入分析了当前编程语言的使用趋势和开发者偏好。此外,报告还探讨了其他热门语言如 JavaScript 和 Java 的表现,并提供了对技术招聘市场的洞见。 ... [详细]
  • 如何撰写PHP电商项目的实战经验? ... [详细]
  • 构建高可用性Spark分布式集群:大数据环境下的最佳实践
    在构建高可用性的Spark分布式集群过程中,确保所有节点之间的无密码登录是至关重要的一步。通过在每个节点上生成SSH密钥对(使用 `ssh-keygen -t rsa` 命令并保持默认设置),可以实现这一目标。此外,还需将生成的公钥分发到所有节点的 `~/.ssh/authorized_keys` 文件中,以确保节点间的无缝通信。为了进一步提升集群的稳定性和性能,建议采用负载均衡和故障恢复机制,并定期进行系统监控和维护。 ... [详细]
author-avatar
小森林
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有