php网址伪静态(apache mod_rewrite模块伪静态)

发布时间:2020-09-02编辑:脚本学堂
php网址伪静态的实现方法,在php中借助apache mod_rewrite重写模块实现伪静态,这里分享下配置伪静态的一些经验,供大家学习参考。

apache mod_rewrite模块实现伪静态。

步骤:

1、检测Apache是否开启mod_rewrite功能

可以通过php提供的phpinfo()函数查看环境配置,找到“Loaded Modules”,其中列出了所有apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。

如果没有开启“mod_rewrite”,则打开目录 apache目录下的“/apache/conf/” ,找到 httpd.conf 文件,再找到“LoadModule rewrite_module”,将前面的”#”号删除即表示取用该功能。  

如果没有查找到“LoadModule” 区域,可以在最后一行加入“LoadModule rewrite_module ,modules/mod_rewrite.so”(独占一行),之后重启apache服务器。再通过phpinfo()函数查看环境配置就有“mod_rewrite”为项了。

2、让apache服务器支持.htaccess

如何让自己的本地APACHE服务器支持:
“htaccess”呢? 只需修改apache的httpd.conf设置就可以让 APACHE支持“.htaccess”了。
打开 APACHE目录的CONF目录下的httpd.conf文件,找到:
Options FollowSymLinks AllowOverride None
改为 Options FollowSymLinks AllowOverride All 就行了。

3、建立.htaccess 文件
建立.htaccess文件时要注意,不能直接建,方法是通过记事本中的另存为菜单,在文件名窗口输入:“.htaccess”,然后点击保存。

4、rewrite规则

在新建.htaccess文件之后,就在里面写入以下内容:
RewriteEngine on #rewriteengine为重写引擎开关on为开启off为关闭 RewriteRule ([0-9]{1,})$index.php?id=$1 在这里,RewriteRule是重写规则,是用正则表达式的句子,([0-9]{1,})表示由数字组成的,$表示结束标志,表示以数字结束!

如果要实现伪静态页面,规则如下:
RewriteEngine on RewriteRule ([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代表第1括号匹配的值,$2代表第二个括号的值,如此类推!

测试PHP脚本,index.php文件:
echo ‘你的Action值为:’ . $_GET['action']; echo ‘ ’; echo ‘ID值为:’ . $_GET['id']; ?>

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

配置伪静态的个人经验:

开始接触伪静态,就是在服务器中多配置几个虚拟域名,类似真正的访问网址。
只需三步:
1、首先 在Apache  Apache模块中,开启 vhost_alias_moudle
2、修改httpd.conf文件,在这个文件中,搜索rewrite  .找到  LoadModule rewrite_module modules/mod_rewrite.so    去掉前面的#
3、修改这个文件,在路径  D:wampbinapacheApache2.2.21confextra 下的httpd-vhosts.conf 文件
 

复制代码 代码示例:
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "d:/wamp/www/dz"
ServerName localhost.www.xingzuo51.com
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>

4、在路径  C:WindowsSystem32driversetc 下 的 hosts 文件中配置一下
127.0.0.1 localhost.www.xingzuo51.com   重启服务即可。

注明:
在浏览器输入中localhost.www.xingzuo51.com,即可访问,加一个localhost是为了和正式的网址加以区别。