PHP+APACHE实现网址伪静态


Posted in PHP onFebruary 22, 2015

 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

 

呵呵,改写成功!

下面将我自己配置伪静态的一些个人经验分享一下:

开始接触伪静态,看着很神奇,以为很难,其实很简单,就是在服务器中多配置几个虚拟域名,类似真正的访问网址。  只需三步

A.首先 在Apache  Apache模块中,开启 vhost_alias_moudle

B.修改httpd.conf文件,在这个文件中,搜索rewrite  .找到  LoadModule rewrite_module modules/mod_rewrite.so    去掉前面的#

C.修改这个文件,在路径  D:\wamp\bin\apache\Apache2.2.21\conf\extra 下的httpd-vhosts.conf 文件,照着示例加一个就OK了

<VirtualHost *:80>

ServerAdmin webmaster@dummy-host2.example.com

DocumentRoot "d:/wamp/www/dz"

ServerName localhost.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.1 localhost.www.dz.cn   重启服务即可。              大功告成!

 ****************************************************************************  大家新年快乐!

注明:在浏览器输入中  localhost.www.dz.cn,即可访问,我加一个localhost是为了和正式的网址加以区别。有不懂的可以联系我,方便大家一起探讨,共同进步!

   你的伪静态规则全部写在 .htaccess 文件中,由于已经开启了伪静态,会默认加载该文件。  写这个.htaccess 文件 要会写正则哦,学习一些正则基础吧!

PHP 相关文章推荐
屏蔽浏览器缓存另类方法
Oct 09 PHP
通过文字传递创建的图形按钮
Oct 09 PHP
在Windows系统上安装PHP运行环境文字教程
Jul 19 PHP
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
Dec 29 PHP
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
Jan 12 PHP
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
Jul 18 PHP
php实现与erlang的二进制通讯实例解析
Jul 23 PHP
thinkPHP实现表单自动验证
Dec 24 PHP
php readfile下载大文件失败的解决方法
May 22 PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
Jan 15 PHP
php通过header发送自定义数据方法
Jan 18 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
Aug 17 PHP
php数组键名技巧小结
Feb 17 #PHP
php使用explode()函数将字符串拆分成数组的方法
Feb 17 #PHP
php使用unset()删除数组中某个单元(键)的方法
Feb 17 #PHP
php实现两个数组相加的方法
Feb 17 #PHP
php选择排序法实现数组排序实例分析
Feb 16 #PHP
php插入排序法实现数组排序实例
Feb 16 #PHP
php实现递归与无限分类的方法
Feb 16 #PHP
You might like
php中使用Akismet防止垃圾评论的代码
2011/06/10 PHP
PHP输出数组中重名的元素的几种处理方法
2012/09/05 PHP
PHP基础陷阱题(变量赋值)
2012/09/12 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
2014/07/01 PHP
如何解决PHP无法实现多线程的问题
2015/09/25 PHP
JS获取页面窗口大小的代码解读
2011/12/01 Javascript
JavaScript实现快速排序(自已编写)
2012/12/19 Javascript
浏览器兼容console对象的简要解决方案分享
2013/10/24 Javascript
js判断客户端是iOS还是Android等移动终端的方法
2013/12/11 Javascript
node.js中的fs.fstat方法使用说明
2014/12/15 Javascript
jQuery解析Json实例详解
2015/11/24 Javascript
jQuery实现自动调用和触发某个事件的方法
2016/11/18 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
详解JS获取HTML DOM元素的8种方法
2017/06/17 Javascript
jQuery DOM节点的遍历方法小结
2017/08/15 jQuery
Angular入口组件(entry component)与声明式组件的区别详解
2018/04/09 Javascript
解决vue路由后界面没有变化,但是链接有的问题
2018/09/01 Javascript
JavaScript this指向相关原理及实例解析
2020/07/10 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
vue使用exif获取图片旋转,压缩的示例代码
2020/12/11 Vue.js
[02:36]DOTA2混沌骑士 英雄基础教程
2013/11/26 DOTA
[02:53]DOTA2英雄昆卡基础教程
2013/11/25 DOTA
python中使用urllib2获取http请求状态码的代码例子
2014/07/07 Python
Python深入学习之特殊方法与多范式
2014/08/31 Python
使用简单工厂模式来进行Python的设计模式编程
2016/03/01 Python
python嵌套字典比较值与取值的实现示例
2017/11/03 Python
python递归法解决棋盘分割问题
2019/07/17 Python
Django之使用内置函数和celery发邮件的方法示例
2019/09/16 Python
美国综合购物商城:UnbeatableSale.com
2018/11/28 全球购物
客服实习的个人自我鉴定
2013/10/20 职场文书
运动会解说词200字
2014/02/06 职场文书
中学生国旗下讲话稿
2014/04/26 职场文书
介绍信如何写
2015/01/31 职场文书
道歉信怎么写
2015/05/12 职场文书
pycharm无法导入lxml的解决办法
2021/03/31 Python
变长双向rnn的正确使用姿势教学
2021/05/31 Python