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 相关文章推荐
php 远程图片保存到本地的函数类
Dec 08 PHP
用PHP实现 上一篇、下一篇的代码
Sep 29 PHP
PHP中::、-&amp;gt;、self、$this几种操作符的区别介绍
Apr 24 PHP
PHP之生成GIF动画的实现方法
Jun 07 PHP
php上传文件中文文件名乱码的解决方法
Nov 01 PHP
codeigniter框架批量插入数据
Jan 09 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
Oct 17 PHP
ci检测是ajax还是页面post提交数据的方法
Nov 10 PHP
PHP动态规划解决0-1背包问题实例分析
Mar 23 PHP
php中mkdir()函数的权限问题分析
Sep 24 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
Mar 15 PHP
Laravel 创建指定表 migrate的例子
Oct 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
PHP自动生成月历代码
2006/10/09 PHP
VIM中设置php自动缩进为4个空格的方法详解
2013/06/14 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
php处理单文件、多文件上传代码分享
2016/08/24 PHP
PHP快速排序quicksort实例详解
2016/09/28 PHP
360搜索引擎自动收录php改写方案
2018/04/28 PHP
PHP判断当前使用的是什么浏览器(推荐)
2019/10/27 PHP
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
JObj预览一个JS的框架
2008/03/13 Javascript
基于Jquery的标签智能验证实现代码
2010/12/27 Javascript
js时间戳格式化成日期格式的多种方法
2013/11/11 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
jQuery mobile在页面加载时添加加载中效果 document.ready 和window.onload执行顺序比较
2016/07/14 Javascript
各式各样的导航条效果css3结合jquery代码实现
2016/09/17 Javascript
require、backbone等重构手机图片查看器
2016/11/17 Javascript
Bootstrap基本组件学习笔记之面板(14)
2016/12/08 Javascript
javascript基于原型链的继承及call和apply函数用法分析
2016/12/15 Javascript
bootstrap导航、选项卡实现代码
2016/12/28 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
2017/06/12 Javascript
React 组件间的通信示例
2018/06/14 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
vue项目引入ts步骤(小结)
2019/10/31 Javascript
Node.js学习之内置模块fs用法示例
2020/01/22 Javascript
Python 第一步 hello world
2009/09/25 Python
5种Python单例模式的实现方式
2016/01/14 Python
Python定时发送天气预报邮件代码实例
2019/09/09 Python
Python SSL证书验证问题解决方案
2020/01/13 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
2020/02/10 Python
Django+Celery实现动态配置定时任务的方法示例
2020/05/26 Python
Python sorted对list和dict排序
2020/06/09 Python
亚马逊中国官方网站:amazon.cn
2017/05/25 全球购物
自我评价格式
2014/01/06 职场文书
专项法律服务方案
2014/06/11 职场文书
苏州园林导游词
2015/02/03 职场文书
2015年学校教育教学工作总结
2015/04/22 职场文书
Redis keys命令的具体使用
2022/06/05 Redis