PHP+APACHE实现网址伪静态
Apache的mod_rewrite是比较强大的,在进行网站建设时,可以通过这个模块来实现伪静态。
主要步骤如下:
1.检测Apache是否开启mod_rewrite功能 可以通过php提供的phpinfo()函数查看环境配置,找到“LoadedModules”,其中列出了所有apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。如果没有开启“mod_rewrite”,则打开目录apache目录下的“/apache/conf/”,找到httpd.conf文件,再找到“LoadModulerewrite_module”,将前面的”#”号删除即表示取用该功能。 如果没有查找到“LoadModule”区域,可以在最后一行加入“LoadModulerewrite_module,modules/mod_rewrite.so”(独占一行),之后重启apache服务器。再通过phpinfo()函数查看环境配置就有“mod_rewrite”为项了。
2.让apache服务器支持.htaccess 如何让自己的本地APACHE服务器支持:“htaccess”呢?只需修改apache的httpd.conf设置就可以让APACHE支持“.htaccess”了。打开APACHE目录的CONF目录下的httpd.conf文件,找到:OptionsFollowSymLinksAllowOverrideNone改为OptionsFollowSymLinksAllowOverrideAll就行了。
3.建立.htaccess文件 建立.htaccess文件时要注意,不能直接建,方法是通过记事本中的另存为菜单,在文件名窗口输入:“.htaccess”,然后点击保存。
4.rewrite规则学习 在新建.htaccess文件之后,就在里面写入以下内容:RewriteEngineon#rewriteengine为重写引擎开关on为开启off为关闭RewriteRule([0-9]{1,})$index.php?id=$1在这里,RewriteRule是重写规则,是用正则表达式的句子,([0-9]{1,})表示由数字组成的,$表示结束标志,表示以数字结束!如果要实现伪静态页面,规则如下:RewriteEngineonRewriteRule([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值为:pageID值为:18
呵呵,改写成功!
下面将我自己配置伪静态的一些个人经验分享一下:
开始接触伪静态,看着很神奇,以为很难,其实很简单,就是在服务器中多配置几个虚拟域名,类似真正的访问网址。 只需三步
A.首先在Apache Apache模块中,开启vhost_alias_moudle
B.修改httpd.conf文件,在这个文件中,搜索rewrite .找到 LoadModulerewrite_modulemodules/mod_rewrite.so 去掉前面的#
C.修改这个文件,在路径 D:\wamp\bin\apache\Apache2.2.21\conf\extra下的httpd-vhosts.conf文件,照着示例加一个就OK了
<VirtualHost*:80> ServerAdminwebmaster@dummy-host2.example.com DocumentRoot"d:/wamp/www/dz" ServerNamelocalhost.www.dz.cn ErrorLog"logs/dummy-host2.example.com-error.log" CustomLog"logs/dummy-host2.example.com-access.log"common </VirtualHost>
D.在路径 C:\Windows\System32\drivers\etc下的hosts文件中配置一下
127.0.0.1localhost.www.dz.cn 重启服务即可。 大功告成!
**************************************************************************** 大家新年快乐!
注明:在浏览器输入中 localhost.www.dz.cn,即可访问,我加一个localhost是为了和正式的网址加以区别。有不懂的可以联系我,方便大家一起探讨,共同进步!
你的伪静态规则全部写在.htaccess文件中,由于已经开启了伪静态,会默认加载该文件。 写这个.htaccess文件要会写正则哦,学习一些正则基础吧!