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

大家也许对PHP伪静态页面还比较陌生,今天我们就向大家具体讲解PHP实现伪静态化页面的具体代码,让大家对对PHP伪静态有一个更加深入的了解。

PHP实现伪静态化页面方法一:

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

<?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);
?>

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

连接使用方式:

****.php/param1|[email protected]|4321

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

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

我们知道搜索引擎对于静态页面是非常友好的,因此很多网站通过生成静态页面等手段方便爬虫抓取自己网站的内容。但是有时候一些应用并不适合全部静态化,比如数据变化非常大的论坛/贴吧系统,这时候我们可以通过URL重写来实现链接的伪静态化,即网站对外使用静态化的链接,而内部实际上仍然使用动态页面的 URL形式。比如像这样一个链接:http://www.heimaoxuexi.com/forum.php?mod=forumdisplay&fid=38&digest=1,我们可以改写成http://www.heimaoxuexi.com/forum-38-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种方法只是变通,不得已而为之,要修改链接形式很不方便也不灵活。

时间: 2024-10-02 09:46:19

PHP实现伪静态化页面的具体实现方式的相关文章

小蚂蚁学习页面静态化(2)——更新生成纯静态化页面的三种方式

更新生成纯静态化页面的三种方式:1.按照时间间隔更新.2.手动更新.3.定时更新(需要系统配合). 1. 按照时间间隔更新. 当用户第一次访问这个页面的时候,程序自动判断,该静态文件是否存在,并且该文件是否还在有效时间内,如果该文件未超出了有效时间,用户访问的是已经生成的静态文件.如果超出了有效时间,用户得到的是动态输出的内容,同时重新生成静态文件.稍微修改一下昨天的代码为例: <?php //首先判断是否有静态文件,并且文件的最新修改时间到现在是否大于20秒 if(is_file('./tex

PHP 页面静态化/纯静态化/伪静态化

概念 PHP静态化分为:纯静态化 和 伪静态化:纯静态化又分为:局部静态化 和 完全静态化 纯静态化:是把PHP生成的动态页面保存成静态的html文件,用户访问该静态页面,而不是用户每一次访问都重新生成一张相同的网页,优点就是减小服务器开销, 局部静态化:是生成的静态文件中,有局部的数据还是通过ajax技术动态获取的: 完全静态化:即不存在动态获取数据的情况,所以内容都来自静态的html页面 伪静态化:其实还是动态访问,其实质是动态生成数据,你访问的网址类似于"http://yourhost,c

PHP 404页面/如何设置404页面/URL静态化/URL伪静态化

php中如何设置404页面及其他错误页面 首先在项目根目录下新建文件,文件名为" .htaccess " 在该文件中写入一下配置项: ErrorDocument 404 /404.html 或者是带有文件路径的地址: ErrorDocument 404 /error_pages/404.html 其他 401.500 等错误同理 注意点是:( 参考 ) 不要将错误页面指向主页面,可能会导致主页在搜索引擎中消失: 错误页面地址设置用相对路径(如果有绝对地址,会返回发起两次请求,第一次是3

Windows-Server-2008、IIS7.0环境下配置伪静态化

在Windows-Server-2008.IIS7.0环境下配置伪静态化 首先,是IIS7.0的配置,由于Windows Server 2008操作系统默认的IIS版本为7.0,我们知道,IIS7.0与IIS6.0 的操作界面差别较大,如图(1)所示: 1.IIS7.0操作界面: 图(1) 2 新建网站同时新建应用程序池与网站对应,注意,在IIS7下新建网站之后,程序会自动新建应用程序池与之对应: 不需要再新建应用程序池.如图(2): 图(2) 3  添加网站详细页面如图(3)所示: 图(3)

asp.net伪静态化

方法一:利用Httphandler实现URL重写(伪URL及伪静态) 我们有时候会见到这样的地址:“http://www.huoho.com/show-12-34.html”,你或许认为在站点服务器根目录“/”下存在名为“show-12-34.html”的文件,其实实际它可能是不存在的,而可能你看到的内容是“/aspx/show.aspx?type= 12&id=34”的内容,为什么要这样做呢?原因有多个方面:首先是增强URL的友好性,记“show-12-34.html”总比 “/aspx/sh

使用Apachmod_rewrit对URL重写来完成网站URL伪静态化

A pachMod_Rewrit对URL进行重写.linux系统途径通常为 /etc/httpd/conf/httpd.conf第二步首要必需得让服务器支撑mod_rewrit假如你使用的虚拟主机,完成网站伪静态化. 装备办法: 第一步找到apach装备文件httpd.conf文件在conf目录下.请事前问询你主机提供商.翻开httpd.conf找到#LoadModulrewrite_modulmodules/mod_rewrite.so把#去掉 找到A llowOverridNone 改成 A

A pach敞开并完成网站伪静态化

A pachMod_Rewrit对URL进行重写.linux体系途径通常为 第二步首要必需得让服务器支撑mod_rewrit如果你运用的虚拟主机.或许这个文档没有界说任何对于URL重写的规矩就不会有任何效果.如果不需求全部服务器都支撑URL规矩重写,完成网站伪静态化.装备方法:第一步找到apach装备文件httpd.conf文件在conf目录下.请事先询问你主机提供商.翻开httpd.conf找到#LoadModulrewrite_modulmodules/mod_rewrite.so把#去掉找

【转载】 asp.net网站伪静态化

第一步:引用一个dll Intelligencia.UrlRewriter.dll(不同的dll可能方法有些不同) 第二步:在web.config中配置使用伪静态 <configSections>(在configuration节点下) <section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.Rewrit

jsp网页的伪静态化

1使用URLRewrite实现url地址伪静态化1.1URLRewirte的用处 1.满足搜索引擎的要求. 2.隐藏技术实现,提高网站的移植性. 3.满足美感的要求(个人感觉这个用处太牵强). 1.2项目部署 1.首先在http://tuckey.org/urlrewrite/下载urlrewirtefilter,现在有2.6.0和3.2.0两个版本,这里我选择的是前面一个稳定版本. 2.解压所下载的文件,把urlrewrite-.jar复制到项目的WebRoot/WEB-INF/lib/目录下