如果有使用第三方框架做项目时,url路径是可以同过框架给的方法来设定的(如thinkphp),但如果使用原生php写的项目又想重写url,则可通过apache的一些设置来达到想要的效果。

在更改apache的配置之前,应该先了解一些apache的知识:apache中的Directory标签的作用是用于标记我们如何在特定目录订制apache的行为。该标签里会有一个绝对路径,该路径就是你想订制行为的目录。

总体通过apache修改URL的思路就是,在.htaccess文来中对你想要重写的url地址进行重写。步骤如下:

(1)现在服务器的httpd.conf文件中开启重写.htaccess的权限,将下列代码添加到httpd.conf文件中

<Directory ".htaccess文件所在路径">

  AllowOverride All

</Directory>

(2)关于.htaccess文件的存放位置:假如你之前的访问路径为:域名/car_project/index.php

  明显,这个路径访问的是car_project文件夹中的index.php文件,所以你要是想重写该路径,你就应该将.htaccess文件放到car_project文件夹中。

(3)之后再将.htaccess文件将里面的重写引擎开启,在. htaccess文件中加入下列代码

<IfModule mod_rewrite.c>

RewriteEngine on

</IfModule>

(4)之后我们需要在IfModule标签中设定“重定向匹配需要应用的URL基本地址”,指令为RewriteBase,例子如下:

RewriteBase /demo/

而我们现在正在使用的地址是:http://localhost/demo/

(5)在IfModule标签里写入RewriteRule指令后,就可以对url进行重写了,比如可以在标签中加入下列代码:

RewriteRule somepage.php otherpage.php

这代表任何人访问somepage.php页面,实际显示的是otherpage.php页面

同理,我们还可以使用正则表达式来对输入URL参数的方式进行重写(在这就不对正则表达式进行展开详解了)

(6)如此,现在httpd.conf文件和.htaccess文件中应该有如下实例代码:

httpd.conf文件中:

<Directory ".htaccess文件所在绝对路径">

  AllowOverride All

</Directory>

.htaccess文件中:

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteBase /demo/

RewriteRule somepage.php otherpage.php

</IfModule>

在Apache中使用mod_rewrite模块重写URL的更多相关文章

  1. apache中通过mod_rewrite实现伪静态页面的方法

    rewrite规则学习 我们新建一个.htaccess文件之后,就在里面写入以下内容: RewriteEngine on #rewriteengine为重写引擎开关on为开启off为关闭 Rewrit ...

  2. wdlinux中apache配置反向代理模块

    想要在.htaccess中开启反向代理功能都不行[apache中没有mod_proxy模块] .htaccess 文件内容如下 RewriteEngine On RewriteBase / Rewri ...

  3. mod_rewrite模块详解

    mod_rewrite模块提供了一个基于规则的(使用正则表达式分析器的)实时转向URL请求的引擎. 支持每个规则可以拥有不限数量的规则以及附加条件规则的灵活而且强大的URL操作机制. 此URL操作可以 ...

  4. ubuntu中apache的ssl证书配置及url重写

    一.https原理 借用网上的图(图片来源: https://www.cnblogs.com/xiohao/p/9054355.html ),用到了对称加密和非对称加密.    二.ubuntu的ap ...

  5. apache重写URL时,排除静态资源

    THINKPHP项目部署的apache 上面时,如果为了隐藏入口文件配置了重写URL,会导致将静态资源的URL也解析成Controller/Method,导致触发模块不存在 所以在URL重写配置中,需 ...

  6. 开启Apache mod_rewrite模块完全解答

    启用mod_rewrite模块 在conf目录的httpd.conf文件中找到 LoadModule rewrite_module modules/mod_rewrite.so 将这一行前面的#去掉. ...

  7. 【转】开启Apache mod_rewrite模块完全解答

    启用mod_rewrite模块在conf目录的httpd.conf文件中找到LoadModule rewrite_module modules/mod_rewrite.so将这一行前面的#去掉.2.在 ...

  8. 详解调试Apache的mod_rewrite模块

    大家都知道Apache里面的Rewrite规则是一件很蛋疼的事情,有时候只是想做一个伪静态而已,不想去研究那些复杂的规则,可官方给的规则又常常出错,出了问题我们就要调试一下,看看提交的参数被映射到了哪 ...

  9. Ubuntu系统启用Apache Mod_rewrite模块

    在终端中执行 sudo a2enmod rewrite 指令后,即启用了 Mod_rewrite 模块. 另外,也可以通过将 /etc/apache2/mods-available/rewrite.l ...

随机推荐

  1. 小甲鱼PE详解之IMAGE_OPTIONAL_HEADER32 结构定义即各个属性的作用(PE详解03)

    咱接着往下讲解IMAGE_OPTIONAL_HEADER32 结构定义即各个属性的作用! (视频教程:http://fishc.com/a/shipin/jiemixilie/) 接着我们来谈谈 IM ...

  2. scrollview嵌套listview 滑动事件冲突的解决方法

    listView.setOnTouchListener(new View.OnTouchListener() {                            @Override       ...

  3. maven会报Could not transfer artifact xxx错误

    需要在你的eclipse更新一下maven的包 如下:

  4. LoadRunner11录制APP脚本(1)

    1.测试准备: a.首先安装LoadRunner11.0的版本跟新

  5. poj 2063 Investmen 完全背包

    这个题的想法不难,两个点: 1 是完全背包 2 是考虑/1000,降低复杂度   但是提交的时候反复的wa,最后找问题原来是dp开小了,可是dp本来开1005,后来开到100030过了.哎,如果没有时 ...

  6. shell-bash学习03 别名、日期、函数

    别名 使用alias 创建 alias new_command='command sequence' 保存 echo 'alias cmd="command seq"' >& ...

  7. 标准W3C盒子模型和IE盒子模型

    标准W3C盒子模型和IE盒子模型   CSS盒子模型:网页设计中CSS技术所使用的一种思维模型. CSS盒子模型组成:外边距(margin).边框(border).内边距(padding).内容(co ...

  8. 原生 js 左右切换轮播图

    使用方法: 可能很多人对轮播图感兴趣,下面奉上本人的 原生 js 轮播代码复制 js 到页面的最底部,样式在 css 里改,js 基本不用动,有什么不懂的可以 加本人 QQ172360937 咨询 或 ...

  9. 记一次Runtime的巧用

    背景 我们的视频直播是用的大华乐橙的解决方案,而他们近期出来个新的SDK,并且对老版SDK不兼容,而这周,终于把大华乐橙的新版SDK切换了,和这一周做的新的东西,一起提交审核了,并且今天也通过审核了. ...

  10. Open CV 图像显示(1)

      演示:读入一张图片,并显示   #include "stdafx.h"   #include <opencv2/core/core.hpp>   #include  ...