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 相关文章推荐
URL Rewrite的设置方法
Jan 02 PHP
兼容firefox,chrome的网页灰度效果
Aug 08 PHP
php调整服务器时间的方法
Apr 03 PHP
php 如何获取文件的后缀名
Jun 05 PHP
3种方法轻松处理php开发中emoji表情的问题
Jul 18 PHP
适合PHP初学者阅读的4本经典书籍
Sep 23 PHP
Yii2实现增删改查后留在当前页的方法详解
Jan 13 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
php-app开发接口加密详解
Apr 18 PHP
浅析PHP7 的垃圾回收机制
Sep 06 PHP
Yii框架日志操作图文与实例详解
Sep 09 PHP
PHP7修改的函数
Mar 09 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
必须收藏的23个php实用代码片段
2016/02/02 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
Js控制弹窗实现在任意分辨率下居中显示
2013/08/01 Javascript
jquery放大镜效果超漂亮噢
2013/11/15 Javascript
Js 去掉字符串中的空格(实现代码)
2013/11/19 Javascript
jquery中attr和prop的区别分析
2015/03/16 Javascript
理解javascript中的原型和原型链
2015/07/30 Javascript
javascript实现数组去重的多种方法
2016/03/14 Javascript
jquery 遍历数组 each 方法详解
2016/05/25 Javascript
关于 jQuery Easyui异步加载tree的问题解析
2016/12/06 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
React服务端渲染(总结)
2017/07/01 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
javascript数据类型中的一些小知识点(推荐)
2019/04/18 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
2020/10/21 Javascript
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
[22:59]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
pandas筛选某列出现编码错误的解决方法
2018/11/07 Python
python实现名片管理系统
2018/11/29 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
2019/06/27 Python
Django发送邮件功能实例详解
2019/09/02 Python
Python3+selenium实现cookie免密登录的示例代码
2020/03/18 Python
Python3批量创建Crowd用户并分配组
2020/05/20 Python
前端canvas动画如何转成mp4视频的方法
2019/06/17 HTML / CSS
AVI-8手表美国官方商店:AVI-8 USA
2019/04/10 全球购物
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
土木建筑学生自我评价
2014/01/14 职场文书
女子职高个人自荐书
2014/02/01 职场文书
电子商务优秀毕业生求职信
2014/07/11 职场文书
优秀教师个人材料
2014/12/15 职场文书
在Java中Collection的一些常用方法总结
2021/06/13 Java/Android
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers
「女孩的钓鱼慢活」全新版权绘公布
2022/03/21 日漫
Python中Schedule模块使用详解 周期任务神器
2022/04/19 Python
python使用BeautifulSoup 解析HTML
2022/04/24 Python