`
txf2004
  • 浏览: 7065730 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用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|1234@param2|4321
和****.php?param1=1234&para;m2=4321一样。

方法二:通过URL Rewrite实现链接静态化

我们知道搜索引擎对于静态页面是非常友好的,因此很多网站通过生成静态页面等手段方便爬虫抓取自己网站的内容。但是有时候一些应用并不适合全部静态化,比如数据变化非常大的论坛/贴吧系统,这时候我们可以通过URL重写来实现链接的伪静态化,即网站对外使用静态化的链接,而内部实际上仍然使用动态页面的 URL形式。比如像这样一个链接:http://www.ci123.com/abc.php?action=a&id=1,我们可以改写成http://www.ci123.com/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的形式来访问相应页面。
需要注意的是这种方法效率较第一种低,第一种方法是在WEB服务器URL解析过程中实现的,而这里是在PHP页面解析过程里实现的,第2种方法只是变通,不得已而为之,要修改链接形式很不方便也不灵活。

分享到:
评论

相关推荐

    PHP伪静态化页面的实现.txt

    ### PHP伪静态化页面的实现 ...通过上述步骤,可以有效地实现PHP伪静态页面的功能,不仅提高了网站的美观度,还增强了搜索引擎的友好性。此外,这种方法还能够提升用户的体验感,使网站显得更加专业和高效。

    php实现页面静态化

    伪静态化实现** 接着实现伪静态化的页面。 - **用户信息检索页面**: - 创建 `index.php`,包含一个简单的表单用于输入学号。 - 当提交表单后,页面跳转至 `info.php`。 - 表单设计使用 CSS 进行样式设计。 -...

    jsp静态化和伪静态化

    以下是一个简单的静态化实现示例: ```java import java.io.*; import javax.servlet.jsp.*; public class ConstPageWriter extends JspWriter { private PrintWriter pw; public ConstPageWriter(String ...

    PHP实现使用页面静态化

    本案例主要使用PHP 7中的文件读写功能与ob缓存机制实现纯静态页面的生成,使用正则表达式和url重写实现伪静态页面的生成。 PHP页面静态化,是把那些内容不常变化的页面静态化,而不通过动态程序从数据库或者缓存中...

    伪静态页面生成技术|静态页面|生成技术

    在互联网世界中,提高网站的搜索引擎优化(SEO)和用户体验是至关重要的,而伪静态页面生成技术正是实现这一目标的有效手段。伪静态页面,顾名思义,是一种将动态网页以静态HTML页面的形式呈现的技术,它保留了动态...

    HTM页面伪静态 Demo

    在IT行业中,网页的静态化和伪静态化是优化网站SEO(搜索引擎优化)和提高用户体验的重要手段。这里的“HTM页面伪静态 Demo”是一个示例,旨在帮助学习者理解如何将动态的HTM(HTML)页面转换为看起来像是静态的URL...

    php伪静态实现方法

    PHP伪静态技术是一种在实际应用中非常常见的网页优化手段,它主要是通过将动态页面的URL转化为静态化的形式,以提高网站的用户体验和搜索引擎优化(SEO)效果。在PHP环境中,伪静态可以有效地模拟静态页面的访问,而...

    php伪静态方法

    3. 加快页面加载速度:虽然伪静态页面本质上仍然是动态生成,但可以减少服务器处理时间,提升用户体验。 四、注意事项 尽管伪静态有很多好处,但也需要注意一些问题: 1. 配置正确:确保服务器配置正确,避免URL...

    php伪静态例子

    总结,PHP伪静态是通过URL重写技术实现的,可以使用Apache的mod_rewrite或Nginx的rewrite规则,配合PHP处理请求,达到模拟静态页面的效果。了解和掌握这项技术对于提高网站质量及SEO优化至关重要。在实际项目中,...

    php 优化全通 php伪静态

    总结来说,PHP优化全通是提升网站性能的关键,而实现PHP伪静态则有助于提高网站的搜索引擎可见性。两者结合,既能保证网站运行效率,又能提升搜索引擎排名,从而带来更好的用户体验和业务增长。

    页面伪静态案例

    在IT行业中,页面伪静态是一种常见的优化技术,主要用于提高网站的搜索引擎友好度和用户体验。...这种方法可以让搜索引擎...在实际应用中,需要结合各种技术手段,如URL重写、缓存策略等,来实现高效且友好的伪静态页面。

    PHP伪静态实例代码

    总结来说,PHP伪静态技术通过URL重写实现动态URL的静态化,提高了网站的可读性和SEO效果。在实际应用中,这涉及到URL解析、数据库操作、模板渲染等多个环节,结合提供的文件,我们可以推测这是一个包含动态内容生成...

    PHP实现页面静态化1

    本案例主要介绍如何在PHP 7环境下进行页面静态化,包括纯静态化和伪静态化的实现。 一、开发环境: 在本案例中,开发环境配置为Windows 7操作系统,搭配Apache 2.4.18 web服务器,MySQL 5.7.11数据库服务,以及PHP ...

    不用mod_rewrite直接用php实现伪静态化页面代码

    标题中的“不用mod_rewrite直接用php实现伪静态化页面代码”指的是在不使用Apache的mod_rewrite模块的情况下,通过PHP代码来模拟静态页面的效果。这种方法对于那些无法或不想配置服务器环境,或者希望在不支持mod_...

    discuz伪静态配置方法

    1. **伪静态概念**:伪静态是一种技术手段,用于将原本动态的URL转化为类似于静态页面的URL格式,例如将`forum.php?mod=viewthread&tid=123`转化为`forum-123.html`。这样做的好处在于,静态URL更容易被搜索引擎抓取...

    伪静态插件 asp伪静态

    本文将详细探讨“伪静态插件”以及如何在ASP环境下实现伪静态,并提供关于个性化后缀和网站后缀修改的一些建议。 首先,我们要理解什么是伪静态。静态网页是指内容固定、不依赖服务器动态生成的网页,而动态网页则...

    伪静态的源码 伪静态 伪静态 伪静态 需要的来

    然而,需要注意的是,伪静态并不等于真正的静态页面,其本质仍然是动态生成内容。如果网站访问量过大,仍可能导致服务器负载增加。因此,在实现伪静态的同时,还需要考虑服务器性能和数据库优化。 在使用这个压缩包...

    php-rewrite网站伪静态测试文件

    这个标题所指的测试文件主要用于检测服务器环境是否支持使用PHP的mod_rewrite模块来实现伪静态功能。下面将详细讲解这个主题。 **PHP-_rewrite** PHP-rewrite是基于Apache Web服务器的mod_rewrite模块与PHP结合的一...

    DZX3.5伪静态规则文件

    综上所述,"DZX3.5伪静态规则文件"是DZX3.5系统用于实现URL伪静态化的重要配置,它涉及到搜索引擎优化、用户体验提升以及网站性能和安全等多个方面。正确理解和使用这个文件对于DZX3.5网站的运营至关重要。

    ASP程序实现网页伪静态页源代码

    在探讨如何使用ASP(Active Server Pages)程序实现网页伪静态页面源代码之前,我们先来理解一下何为“伪静态”以及其重要性。 #### 伪静态的概念与意义 伪静态,简单来说,就是将动态页面(如带有参数的URL)伪装...

Global site tag (gtag.js) - Google Analytics