在php中我们可以利用apache来实现伪静态也可以利用php来操作,但是目前我只知道 apache的伪静态和php代码的伪静态.
Apache伪静态html(URL Rewrite)设置法
phpma一 打开 Apache 的配置文件 httpd.conf .
phpma二 将#LoadModule rewrite_module modules/mod_rewrite前面的#去掉
1、apache
现在我们可以实现伪静态页面了,写下一下的规则:
实例代码如下:
- <ifmodule mod_rewrite.c> #liunx下需要写
- rewriteengine on
- rewriterule ([a-za-z]{1,})-([0-9]{1,}).html$ index.php?action=$1&id=$2
- </ifmodule>
([a-za-z]{1,})-([0-9]{1,}).html$是规则,index.php?action=$1&id=$2是要替换的格式,$1代表第一个括号匹配的值,$2代表第二个,然后重启动apache
2、.htaccess 在目录里新建个文件命名为 .htaccess、.htaccess文件的书写在网站根目录下建立一个文件,名称是.htaccess,书写方式:
实例代码如下:
- RewriteEngine on #开启重写
- RewriteRule ^/$ index.php #表示用“/”就可以访问index.php
- RewriteRule ^about_(d*)/$ about/about.php?id=$1 #表示可以使用about_22/访问到about/about.php?id=22页面.注意$前面的“/”
- RewriteRule ^about_(d*).html$ about/about.php?id=$1 #表示可以使用about_22.html访问到about/about.php?id=22页面RewriteRule ^news_(d*)_(d*).html$ news/news.php?id=$1&page=$2 #表示可以使用news_11_2.html访问到news/news.php?id=11&page=2页面.$1表示第一个参数,$2表示第二个参数
从上面可以看出,如果我们有下面的链接
<a href="/about_22/">关于我们</a>
那么我们访问到的页面与使用下面访问的页面一样
<a href="/about/about.php?id=22">关于我们</a>
2.php代码
比如:http://www.xxxx.com/soft.php/1,100,8630.html
实例代码如下:
- < ?php
-
- if(@$path_info =$_SERVER["PATH_INFO"]){
-
- if(preg_match("//(d+),(d+),(d+).html/si",$path_info,$arr_path)){
- $gid =intval($arr_path[1]);
- $sid =intval($arr_path[2]);
- $softid =intval($arr_path[3]);
- }else die("Path:Error!");
-
- }else die('Path:Nothing!');
-
- ?>
|