关于伪静态的实现方法

PHP怎么实现呢,具体方法如下:

Apache服务器:

利用apache的mod_rewrite模块

1.检测Apache是否支持"mod_rewrite"
打开您的apache安装目录“/apache/conf/” 下的 httpd.conf 文件,通过Ctrl+F查找到“LoadModule rewrite_module”,查看前面的”#”号是否已删除,没有删除的,直接删除即可。
如果没有查找到,则到“LoadModule” 区域,在最后一行加入“LoadModule rewrite_module modules/mod_rewrite.so”,然后重启apache服务器即可。

2.让Apache服务器支持".htaccess"
如何让自己的本地Apache服务器支持”.htaccess”呢?其实只要简单修改一下apache的httpd.conf设置就可以让 Apache支持".htaccess"了。打开httpd.conf文件后,查找
 
Options FollowSymLinks
AllowOverride None
 
改为
 
Options FollowSymLinks
AllowOverride All
 

3.建立”.htaccess”文件
如果是在windows平台下,有以下几种方法来创建这个文件:
(1)打开文本编辑器,新建文档,另存为,在文件名窗口输入”.htaccess”并选择文件类型为所有,然后点击保存就行了。
(2)首先创建一个”htaccess.txt”,然后进入cmd命令行窗口,通过cd切换到”htaccess.txt”文件所在的目录,然后输入命令:rename htaccess.txt .htaccess ,回车即可。
(3)通过ftp软件创建文件或重命名。

4.rewrite规则学习
我们新建一个.htaccess文件之后,就在里面写入以下内容:
RewriteEngine on
RewriteRule ([0-9]{1,})$ index.php?id=$1

RewriteEngine为重写引擎开关on为开启off为关闭
RewriteRule是重写规则,支持正则表达式的,上面的([0-9]{1,})是指由数字组成的,$是结束标志,说明是以数字结束!

好吧,现在我们可以实现伪静态页面了,写下一下的规则:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule test/([a-zA-Z]{1,})-([0-9]{1,})$ test/index.php?action=$1&search=$2
</IfModule>
test/([a-zA-Z]{1,})-([0-9]{1,})$是规则,$是正则表达式的结束符
test/index.php?action=$1&id=$2是要替换的格式,$1代表第一个括号匹配的值,$2代表第二个,以此类推!!

我们写一个处理的PHP脚本:index.php

PHP代码
<?php
echo '你的查询参数action是:' . $_GET['action'];
echo '<br/>';
echo '你的查询参数search是:' . $_GET['search'];
?>

好了,我们现在在浏览器中输入:
test/list-5

输出的是:
你的查询参数action是:list
你的查询参数search是:5

以上参考:http://blog.163.com/meng_qiang/blog/static/1773543732012222102031725/

IIS服务器:

IIS的重定向需要借助插件:URL Rewrite,这个后续再填

posted @ 2018-03-20 16:30  Yiven  阅读(1067)  评论(0编辑  收藏  举报