phpstudy配置伪静态的方法

来源:互联网 发布:同济大学软件学院 编辑:程序博客网 时间:2024/05/16 12:10

mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面。下面我详细说说它的使用方法

1.检测Apache是否支持mod_rewrite

通过php提供的phpinfo()函数查看环境配置,通过Ctrl+F查找到“Loaded Modules”,其中列出了所有apache2handler已经开启的模块配置,如果里面包括了“mod_rewrite”,则表示已经支持伪静态,不需要再次修改配置。如果没有开启“mod_rewrite”,则找到并打开您的apache安装目录“/apache/conf/” 下的 httpd.conf 文件,通过Ctrl+F查找到“LoadModule rewrite_module”,将前面的”#”号删除即可。如果没有查找到“LoadModule rewrite_module”,则到“LoadModule” 区域,在最后一行加入“LoadModule rewrite_module ,modules/mod_rewrite.so”(必选独占一行),然后重启apache服务器即可。

2.让apache服务器支持.htaccess

如何让自己的本地Apache服务器支持”.htaccess”呢? 其实只要简单修改一下apache的httpd.conf设置就可以让 Apache支 持.htaccess了。打开httpd.conf文件(在那里? Apache目录的conf目录里面),

用文本编辑器打开后,查找 FollowSymLinks Options FollowSymLinks AllowOverride None 改为 Options FollowSymLinks AllowOverride All 就可以了。

3.建立.htaccess 文件

有1种最简单的方法建立.htaccess文件:

用记事本 打开,点击文件–另存为,在文件名窗口输入”.htaccess”,注意是整个部分,也就是包含英文引号,然后点击保存就行了。

4.rewrite规则学习

我们新建一个.htaccess文件之后,就在里面写入以下内容:RewriteEngine on    #rewriteengine为重写引擎开关on为开启off为关闭RewriteRule ([0-9]{1,})$index.php?id=$1

RewriteRule是重写规则,支持正则表达式的,上面的([0-9]{1,})是指由数字组成的,$是结束标志,说明是以数字结束!
好吧,现在我们可以实现伪静态页面了,写下一下的规则:

RewriteEngine onRewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$index.php?action=$1&id=$2

([a-zA-Z]{1,})-([0-9]{1,}).html$是规则,index.php?action=$1&id=$2是要替换的格式,$1代表第一个括号匹配的值,$2代表第二个,如此类推!!

测试PHP脚本如下: index.php文件中的代码如下:

echo ‘你的Action值为:’ . $_GET['action']; echo ‘ID值为:’ . $_GET['id']; 

在浏览器地址栏输入: localhost/page-18.html
输出的是: 你的Action值为:page ID值为:18

常用示例

RewriteEngine OnRewriteRule index.html index.php比如:http://www.yzzmf.com/index.html -> http://www.yzzmf.com/index.php
RewriteRule ^test([0-9]*).html$ test.php?id=$1比如:http://www.yzzmf.com/test8.html -> http://www.yzzmf.com/test.php?id=8
RewriteRule ^cat-([0-9]+)-([0-9]+)\.html$ cat.php?id1=$1&id2=$2比如:http://www.yzzmf.com/cat-1-3.html -> http://www.yzzmf.com/cat.php?id1=1&id2=3
RewriteRule ^cat-([a-zA-Z0-9\-]*)-([0-9]+)-([0-9]+)\.html$ cat.php?id0=$1&id1=$2&id2=$3比如:http://www.yzzmf.com/cat-zbc2ac-3-5.html -> http://www.yzzmf.com/cat.php?id0=zbc2ac&id1=3&id2=5
RewriteRule ^cat1-([0-9]+)-([0-9]+)-([0-9]+)\.html$ cat1.php?id1=$1&id2=$2&id3=$3比如:http://www.yzzmf.com/cat1-4-3-8.html -> http://www.yzzmf.com/cat1.php?id1=4&id2=3&id3=8
RewriteRule ^cat([0-9]*)/$ cat.php?id1=$1比如:http://www.yzzmf.com/cat5/ -> http://www.yzzmf.com/cat.php?id1=5
RewriteRule ^catm([0-9]*)/([0-9]*)/$ catm.php?id1=$1&id2=$2比如:http://www.yzzmf.com/catm6/3/ -> http://www.yzzmf.com/catm.php?id1=6&id2=3

其中不提倡贪婪模式,把0-9都改成([\d]*?) *?允许空

0 0