当前位置:首页>>编程技术

php实现伪静态方法详解

点击数:2082 更新时间:2014-04-06 15:20:00 来源: 昕竹轩网站设计-返回

一、普通伪静态功能
实现路径方式:localhost/test.php/30/505.html
特点:路径中会有test.php字符 这样路径可能造成搜索引擎不友好。
不过也是伪静态的一种,它不需要编写伪静态规则。
<?php
//伪静态方法二
// localhost/test.php/30/505.html
$filename = basename($_SERVER['SCRIPT_NAME']);
echo $_SERVER['SCRIPT_NAME']."<br>";// /php100/test.php
echo $filename."<br>";// test.php
if(strtolower($filename)=='test.php') if(!empty($_GET[id])){
  $id=intval($_GET[id]);
  echo $id."<br>";
  $action=intval($_GET[action]);
  echo $action."<br>";
 " target="_blank" title="">
else  $nav=$_SERVER['REQUEST_URI'];
  echo "1:".$nav."<br>";// /php100/test.php/1/2
  $script=$_SERVER['SCRIPT_NAME'];
  echo "2:".$script."<br>";// /php100/test.php
  $nav=ereg_replace("^$script","",urldecode($nav));
  echo $nav."<br>"; // /1/2
  $vars=explode("/",$nav);
  print_r($vars);// Array ( [0] => [1] => 1 [2] => 2 )
  echo "<br>";
  $id=intval($vars[1]);
  $action=intval($vars[2]);
 " target="_blank" title="">

 echo $id.'&'.$action;
}
?>
 
二、apache实现伪静态
需要服务器支持。
 
我们新建一个.htaccess文件之后,就在里面写入以下内容:
RewriteEngine on #rewriteengine为重写引擎开关on为开启off为关闭
RewriteRule ([0-9])$index.php?id=$1
我讲解一下RewriteRule:RewriteRule是重写规则,支持正则表达式的,上面的([0-9])是指由数
字组成的,$是结束标志,说明是以数字结束!
好吧,现在我们可以实现伪静态页面了,写下一下的规则:
RewriteEngine on
RewriteRule ([a-zA-Z])-([0-9]).html$index.php?action=$1&id=$2
([a-zA-Z])-([0-9]).html$是规则,index.php?action=$1&id=$2是要替换的格式,$1代表第
一个括号匹配的值,$2代表第二个,如此类推!!
我们写一个处理的PHP脚本:
index.php
PHP代码
<?php
echo ‘你的Action是:’ . $_GET['action'];
echo ‘
’;
echo ‘你的ID是:’ . $_GET['id'];
?>
 
三、nginx实现伪静态
需要服务器支持。
 
nginx伪静态规则与apache的实现方法相似。
通过规则 我们的普通路径 如下 article.php?time=2012-0509&id=6
要实现的路径 如下 article-2012_0509-6.html
那么要实现如上效果,我们可以使用如下 静态规则
rewrite "^/article/(.*)/(.*)\.html$" /article.php?time=$1&id=$2 last;
========================================================================
链接效果1:
old.php?time=2012-0509
要实现的路径 如下 article-2012_0509.html
规则:
rewrite "^/old-(.*)\.html$" /old.php?time=$1 last;
========================================================================
链接效果2:
new.php
要实现的路径 如下 new.html
规则:
rewrite "^/news\.html" /news.php last;
========================================================================
针对链接效果1我们写一个处理的PHP脚本来接收参数:
index.php
PHP代码
<?php
echo '你的time是:' . $_GET['time'];
?>

实例参考下载:http://knowledge.jmxzw.com/archives/144.shtml

广告位
【责任编辑:CSW8923 (Top) 返回页面顶端
【必备推荐】(Top) 返回页面顶端
【精品案例】更多案例展示
【最新留言】 (Top) 返回页面顶端
共有0条评论
重要提示:
你设置的联系邮箱是*: (当有人给你留言回复之时,联系邮箱可以及时通知你)
我们建议你填写正确的邮箱地址,如果你之前填写邮箱地址是错误的可以通过 【修改资料】 来重新设置
登录 | 免费注册 | 忘记密码 | 邮箱:CSW8923@126.com     服务电话:17895923895   客服QQ:568441621 点击这里给我发消息
Copyright © 2014-2015 Htmcss.Com All Rights Reserved  版权所有昕竹轩网站设计 备案号:闽ICP备16024510号-4
关闭