1.通过伪静态访问的 url 页面仍然是动态页面。2.设置成伪静态的目的是:让页面与 url 无关,二是让搜索引擎更容易收录

1. 通过 PHP 方式设置伪静态

print_r($_SERVER);

// /2/1.html
preg_match('/^\/(\d+)\/(\d+).html/',$_SERVER['PATH_INFO'],$arr);var_dump($arr);

echo "<pre>";
print_r($_SERVER);// /2/1.html
if(preg_match('/^\/(\d+)\/(\d+).html/',$_SERVER['PATH_INFO'],$arr)){$type = $arr[1];$category_id = $arr[2];//可以操作数据库}else{//看业务需求,如跳到404
}var_dump($arr);

如果你希望你的php可以使用$_SERVER[PATH_INFO]我们需要让Apache支持pathinfo才可以了,当然大部份apache默认
就是支持pathinfo的哦.
PATH_INFO是服务器状态中的一个参数,
通过$_SERVER['PATH_INFO']可以查看内容。
$_SERVER数组中除了PATH_INFO外,
还有非常多的数据,比如REQUEST_URI包含了更多的信息。


还有容易混淆的概念:pathinfo指的是PHP4(4.0.3)的一个功能,用于返回一个文件的路径信息。
<?phpecho $_SERVER['PATH_INFO'];
?>
假设虚拟机的IP是192.168.1.106,访问http://192.168.1.106/pathinfo.php,会得到一个空白的页面。
因为这个URL没有包含PATH_INFO信息。
更换网址测试http://192.168.1.106/pathinfo.php/year/2014/,
页面上会显示/year/2014/,说明可以识别PATH_INFO信息。

补充:Apache2.2.22开启PathInfo模式支持
在配置文件中加入

<Files *.php>
AcceptPathInfo On
</Files>

这样 Apache 就可以支持针对 php 文件的 PathInfo 了。
于是,小柒又充满希望的试了一下,可惜,还是没有成功。
我想,这PathInfo跟URL有关,那会不会是因为Apache服务器没有开启mod_rewrite模块的关系呢?于是,我在Apache的配置文件(Apache安装目录的conf文件夹下的httpd.conf文件)里找到:

#LoadModule rewrite_module modules/mod_rewrite.so

将前面的#去掉,改为:
LoadModule rewrite_module modules/mod_rewrite.so
保存,重启服务器后,项目终于可以使用PathInfo模式访问了


PHP中的全局变量$_SERVER['PATH_INFO']是一个很有用的参数,众多的CMS系统在美化自己的URL的时候,
都用到了这个参数。

对于下面这个网址:

http://www.test.com/index.php/foo/bar.html?c=index&m=search
我们可以得到 $_SERVER['PATH_INFO'] = ‘/foo/bar.html’,而此时
$_SERVER['QUERY_STRING'] = 'c=index&m=search';
通常,我们最初开始PHP程序编写的时候,
都会使用诸如:
http://www.test.com/index.php?c=search&m=main
这样的URL,这种URL不仅看起来非常奇怪,
而且对于搜索引擎也是非常不友好的。
很多搜索引擎收录的时候,都会忽略Query String之后
的内容,google虽然不会忽略Query String,
但是对于其他不含Query String的页面,会给于比较高的PR值。下面是一段解析PATH_INFO的非常简单的代码:
<?phpif( !isset( $_SERVER['PATH_INFO'] ) ){$pathinfo = 'default';
}else{$pathinfo =  explode('/', $_SERVER['PATH_INFO']);
}if( is_array($pathinfo) AND !empty($pathinfo)  ){$page = $pathinfo[1];
}else{$page = 'a.php';
}require "$page.php";?>

52. PHP 伪静态相关推荐

  1. php 伪静态 page-18.html,PHP 伪静态实现技术原理讲解

    PHP 伪静态实现技术原理讲解 发布于 2015-01-18 23:52:58 | 129 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pre ...

  2. Asp.net创建伪静态页面

    下面是我研究了好几天和同事一起才研究出来的,原创. 1伪静态的定义: 伪静态是相对真实静态来讲的,通常我们为了增强搜索引擎的友好面,都将文章内容生成静态页面,但是有的朋友为了实时的显示一些信息.或者还 ...

  3. iis7.5 php伪静态,Windows Server 2008 下WordPress IIS7.5伪静态规则设置(最新)

    解决地址栏中tag标签不正常 实现目的: 配置WordPress伪静态 具体操作: 一.确认IIS 7.5是否安装IIS URL Rewrite 打开:控制面板\系统和安全\管理工具\Internet ...

  4. 四层负载均衡 动静分离和资源分离 Rewrite rewrite伪静态实例

    文章目录 四层负载均衡 四层负载均衡特点 查看四层负载均衡语法 四层负载均衡配置 优化配置文件 四层负载均衡日志配置 nginx的TCP负载均衡---端口转发 动静分离 单台的动静分离 多台机器动静分 ...

  5. 实验吧_拐弯抹角(url伪静态)Forms

    拐弯抹角 先贴代码 1 <?php 2 // code by SEC@USTC 3 4 echo '<html><head><meta http-equiv=&qu ...

  6. 设置伪静态或者生成html,网站要设置伪静态,需先弄清楚自己的网站环境!

    最近发现很多的站长朋友会问到伪静态的问题,那到底什么是伪静态.伪静态有什么好呢?我们先来了解一下什么是伪静态. 要设置伪静态,请先弄清楚自己的网站环境! 伪静态 伪静态是相对真实静态来讲的,伪静态就是 ...

  7. 网络编程_HTTP协议_Web服务器_(TCP3次握手4次挥手,长短连接,伪静态、静态和动态)

    Python高级语法--网络编程--进阶学习笔记 文中案例参考: https://github.com/FangbaiZhang/Python_advanced_learning/tree/maste ...

  8. 配置伪静态(URL重写)

    本篇借鉴了很多文章,这里做个记录. 有时我们的导航栏出现xx.aspx?id=x&name=xx 等等这样,会显得不好看,我们可以利用伪静态来美化我们的导航栏,伪静态的形式可以自己定义,本质还 ...

  9. Linux下nginx支持.htaccess文件实现伪静态的方法!

    在Google上搜索的资料很多人都说nginx目前不支持.htaccess文件,我按照nginx的规则试验了一下,结果发现nginx是完全支持.htaccess文件的! 方法如下: 1. 在需要使用. ...

  10. php7伪静态 源码,PHPWind 8.5和8.7版的伪静态.htaccess规则

    日前PHPWind发布了8.7的新版本,站长们升级后有些伪静态规则不能使用.本文介绍修改Apache的.htaccess来实现伪静态的效果,效果如下:http://www.phpwind.net/fx ...

最新文章

  1. 漫谈视频目标跟踪与分割
  2. druid列存数据库简介
  3. php 生成pdf 中文,php采用tcpdf生成pdf支持中文,图片
  4. java 什么是耦合_什么是耦合、解耦
  5. flutter ios上踩的一个坑
  6. android动态波浪效果,android贝塞尔曲线实现波浪效果
  7. Spring Boot+Ext JS准前后端框架应用的会话(Session)处理
  8. 自带公式编辑_公式都是怎么编辑出来的?如何打出公式上下标符号?
  9. 编程算法/面试 - K链表翻转
  10. C语言电话薄登录系统,求助 哈稀表编电话薄程序(c语言) 算法
  11. 太傻了!下次二面再回答不好“秒杀系统“设计原理,我就捶死自己...
  12. 苹果系统tft选哪个服务器不卡,TFT是什么
  13. vc++6.0 下实现的 立体四子棋 程序 (原型来源于北京科技馆)
  14. Unity 随机生成中文名字
  15. win10系统激活遇到的问题
  16. 仙剑奇侠传3 全开注册表改法
  17. 网络编程——Java Email
  18. Verilog加法器设计
  19. Eclipse SVN:E200030:There are unfinished transactions detected
  20. 使用showdown.js将Markdown文档转换为HTML

热门文章

  1. 与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。
  2. bzoj1452 [JSOI2009]Count
  3. C#读写者线程(用AutoResetEvent实现同步)(转载)
  4. App Icon 和 LaunchImage 尺寸
  5. R_circlize包_和弦图(一)
  6. 大项目之网上书城(一)——注册页面
  7. BZOJ 1087 [SCOI2005]互不侵犯King(状压DP)
  8. 获取表结构信息(字段名,类型,长度,精度,小数位数,主键,自动增长)...
  9. tornadod的异步代码
  10. vijos1846 [NOIP2013] 华容道【最短路】