600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > PHP实现伪静态化页面的具体实现方式

PHP实现伪静态化页面的具体实现方式

时间:2021-12-22 08:03:25

相关推荐

PHP实现伪静态化页面的具体实现方式

php教程|php手册

PHP,实现,伪,静态,化页,面具体,方式,大家,也许,对,PHP,实现,伪,静态,化,页面,方法,在,你程

php教程-php手册

大家也许对PHP实现伪静态化页面方法一:

logo源码怎么用,vscode 扩展市场链接,ubuntu 17 黑屏,tomcat资源未找到,买房 爬虫,php 编译配置,惠州白帽seo技术,网站右侧猜你喜欢js代码,教师管理系统html模板下载lzw

在你的程序初始化时使用如下代码:

c 档案管理系统源码,vscode 输入特殊字符,ubuntu 声卡 usb,tomcat几种运行方式,sqlite最大数据类型,花盆里出现超小的爬虫是什么,php 访问对象,佛山效果好seo网络,css div旅游网站模板,mysql数据库设计文档模板lzw

<?php$Php2Html_FileUrl = $_SERVER[“REQUEST_URI”]; $Php2Html_UrlString = str_replace(“/”, “”, strrchr($Php2Html_FileUrl, “/”)); $Php2Html_UrlQueryStrList = explode(“@”, $Php2Html_UrlString); foreach($Php2Html_UrlQueryStrList as $Php2Html_UrlQueryStr) { $Php2Html_TmpArray = explode(“|”, $Php2Html_UrlQueryStr); $_GET[$Php2Html_TmpArray[0]] = $Php2Html_TmpArray[1]; } echo ‘假静态:$_GET变量<br/>‘; print_r($_GET);?>

dede排行榜网站源码,vscode的c 调试,ubuntu apt误删,apr tomcat了解,sqlite有什么问题,医院网上挂号插件,写前端界面可以用哪些框架,python爬虫多线程下载图片,php 工作日志,新乡卫辉seo优化,js 班级网站源代码,淡蓝色网页背景,订餐网页模板 ecshoplzw

然后php中调用$_GET变量就像平常一样了。

连接使用方式:

****.php/param1|1234@param2|4321

和****.php?param1=1234¶m2=4321一样。

PHP实现伪静态化页面方法二:通过URL Rewrite实现链接静态化

我们知道搜索引擎对于静态页面是非常友好的,因此很多网站通过生成静态页面等手段方便爬虫抓取自己网站的内容。但是有时候一些应用并不适合全部静态化,比如数据变化非常大的论坛/贴吧系统,这时候我们可以通过URL重写来实现链接的伪静态化,即网站对外使用静态化的链接,而内部实际上仍然使用动态页面的 URL形式。比如像这样一个链接:/abc.php?action=a&id=1,我们可以改写成/abc/a/1.html的形式。这是搜索引擎优化最重要的内容之一,它还有一个额外的好处,可以使页面有一个永久链接,即便以后网站系统内部链接有变化,通过适当改变Rewrite规则就可以保证原先的外部URL一直有效。

下面介绍2种简单的Apache+PHP下实现URL重写的方法,第一种适合有服务器配置权限的用户,第二种适合租用空间的用户,也作为我近期的学习心得的整理。

1、对于有服务器配置权限的用户,推荐使用Apache的mod_rewrite模块,这里假设已经安装好mod_rewrite模块。打开Apache的配置文件,找到相应主机的部分,添加以下代码:

RewriteEngine On RewriteRule ^/abc/([a-z]+)/([0-9]+).html$ /abc.php?action=$1&id=$2

然后在shell里执行service httpd reload,让Apache重新载入配置就好了。现在在PHP页面里面我们可以把链接写成 abc/a/1.html的形式,Apache在解析这个 URL的时候会rewrite成abc.php?action=a&id=1的形式,并返回正确的页面。运用正则表达式我们可以实现几乎任何我们想要的链接形式,mod_rewrite模块的功能异常强大,这里只是一个及其简单的应用。

2、对于租用空间的用户,一般都没有办法修改Apache的配置,这里有个变通的方法,原理是这样的:当要传递参数访问PHP 页面时,正常情况下是通过自动全局变量$_GET来获得,比如上面的链接,在页面里可以通过$_GET[‘action’] 和 $_GET[‘id’] 来获得,重写URL后就不行了。现在在每个页面里require一个url_rewrite.php文件,里面代码如下:

$filename = basename($_SERVER[‘SCRIPT_NAME’]); if (strtolower($filename) == “abc.php”){ if (!empty($_GET[id])){ $id = intval($_GET[id]); $action = intval($_GET[action]); } else { $nav = $_SERVER[“REQUEST_URI”]; $script = $_SERVER[“SCRIPT_NAME”]; $nav = ereg_replace(“^$script”, “”, urldecode($nav)); $vars = explode(“/”, $nav); $action = intval($vars[1]); $id = intval($vars[2]); } }

这样$action和$id也得到了,页面里链接可以写成abc.php/a/1的形式来访问相应页面。

需要注意的是这种PHP实现伪静态化页面方法效率较第一种低,第一种方法是在WEB服务器URL解析过程中实现的,而这里是在PHP页面解析过程里实现的,第2种方法只是变通,不得已而为之,要修改链接形式很不方便也不灵活。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。