mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面。一些防盗链就是通过该方法做到的。

00x1 启动rewrite引擎

00x2 如何启用apache rewrite?

00x3 书写Rewrite代码

00x4 Rewrite规则学习

00x1 启动rewrite引擎

  • RewriteEndine on

可以使用两种方式来写rewite,一种是直接在httpd.conf当中写。一种则是写在.htaccess中。

00x2 如何启用apache rewrite?

  • 在httpd.conf当中找到“LoadModule rewrite_module modules/mod_rewrite.so”将#号去除即开启了apache rewrite。
  • 开启.htaccess,依旧是在httpd.conf文件当中的AllowOverride all的“#”号去除即可。

可以在phpinfo界面当中查看rewrite开启信息,Loaded Modules处查看:mod_rewrite 如存在即已开启。

00x3 书写Rewrite代码:

  1. 如果要直接在httpd.conf中输入的话,则输入在“</IfModule>”标签结尾处。

  2.在htaccess书写。在windows当中是不允许建立这样的文件,那么我们要如何建立呢?先建立一个htaccess.txt可以进入cmd,键入:rename htaccess.txt .htaccess便可以生成一个.htaccess文件。简单的说就是建一个txt然后使用cmd重命名为htaccess即可。

00x4 Rewrite规则学习

  新建立好一个.htaccess文件了以后,使用记事本打开。开始学习Rewrite规则。

开始第一个案例:

RewriteEngine on #rewriteengine为重写引擎开关on为开启off为关闭
RewriteRule ^(.*?).html 1.php?id=$1

Rewriterule是重写规则。后面的是正则。

1.php的代码:

<?php
echo $_GET['id'];
?>

写好rewrite了以后重启apache。然后访问127.0.0.1/t_test.html

输出的效果如下所示:

成功的实现了伪静态。

这种仅仅只是以文件的方式写伪静态,我们还可以以文件夹的方式写

直接在刚才的基础上使用正则($)的作用来操作。代码如下:

RewriteEngine on
RewriteRule ^t_(.*)/$ 1.php?id=$1

可以随便你怎么写就怎么写。

相关知识


mod_rewrite 规则修正符

  • 1) R 强制外部重定向
  • 2) F 禁用URL,返回403HTTP状态码。
  • 3) G 强制URL为GONE,返回410HTTP状态码。
  • 4) P 强制使用代理转发。
  • 5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。
  • 6) N 重新从第一条规则开始运行重写过程。
  • 7) C 与下一条规则关联8) T=MIME-type(force MIME type) 强制MIME类型
  • 9) NS 只用于不是内部子请求
  • 10) NC 不区分大小写
  • 11) QSA 追加请求字符串
  • 12) NE 不在输出转义特殊字符 \%3d$1 等价于 =$1

Apache Rewrite 拟静态的更多相关文章

  1. Apache Rewrite 拟静态配置

    1.mod_rewrite 简介和配置 Rewirte主要的功能就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范.平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等 2.mod_ ...

  2. Apache Rewrite 拟静态配置54

    mod_rewrite 规则的使用 RewriteEngine on RewriteCond %{HTTP_HOST} !^www.php100.com  [NC]  RewriteRule   ^/ ...

  3. Apache Rewrite 静态配置

    1.mod_rewrite 简介和配置 Rewirte主要的功能就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范.平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等如一个普通访问 ...

  4. centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 访问控制 apache rewrite 配置开机启动apache tcpdump 第二十节课

    centos    LAMP第二部分apache配置  下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转  配置apache的访问日志  配置静态文件缓存  配置防盗链 ...

  5. Apache rewrite

    Apache rewrite mod_rewrite简介和配置 实URL跳转隐藏真实地址 拟目录 域名跳转 防止盗链 Apache配置支持httpd.conf配置.htaccess配置 启用rewri ...

  6. Apache Rewrite url重定向功能的简单配置

    http://www.jb51.net/article/24435.htm 1.Apache Rewrite的主要功能 就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范.平时帮助我 ...

  7. Apache Rewrite的主要功能

    #Apache Rewrite的主要功能 #就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范.#平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等 在httpd.conf中去掉下 ...

  8. 使用Apache服务部署静态网站2019-7-5

    使用Apache服务部署静态网站 第1步:把镜像挂载到系统中 第2步:使用vim文件编辑器创建YUM仓库的配置文件 [root@study ~]# vim /etc/yum.repos.d/abc.r ...

  9. HTTP POST请求的Apache Rewrite规则设置

    最近自测后端模块时有个业务需求需要利用WebServer(我用的是Apache)将HTTP POST请求转发至后端C模块,后端处理后返回2进制加密数据.http post请求的url格式为:     ...

随机推荐

  1. 如何在CentOS 7中添加新磁盘而不用重启系统

    导读 对大多数系统管理员来说扩充 Linux 服务器的磁盘空间是日常的工作之一.因此这篇文章会通过使用 Linux 命令,在 CentOS 7 系统上演示一些简单的操作步骤来扩充您的磁盘空间而不需要重 ...

  2. 在weka中添加libSVM或者HMM等新算法

    转:http://kasy-13.blog.163.com/blog/static/8214691420143226365887/ Weka的全名是怀卡托智能分析环境(Waikato Environm ...

  3. 在低带宽或不可靠的网络环境中安装 Visual Studio 2017

    在低带宽或不可靠的网络环境中安装 Visual Studio 2017 2017-4-141 分钟阅读时长 作者  https://docs.microsoft.com/zh-cn/visualstu ...

  4. Xcode 打包 ipa 包

    原地址:http://zengwu3915.blog.163.com/blog/static/27834897201362831449893/ 上次介绍了木有证书的打包ipa.如果安装证书后,我们还有 ...

  5. MySQL数据库和实例简介

    MySQL 单进程多线程,也就是说MySQL实例在系统上表现就是一个进程 该架构类似于SQL Server和Windows版本的Oracle MySQL数据库是由一些列物理文件组成.类似于frm.MY ...

  6. 《学习opencv》笔记——矩阵和图像操作——cvCrossProduct and cvCvtColor

    矩阵和图像的操作 (1)cvCrossProduct函数 其结构 void cvCrossProdust(//计算两个三维向量的叉积 const CvArr* src1, const CvArr* s ...

  7. 【Android】在build/envsetup.sh中添加自己的命令(函数)

    由于测试的需要,经常需要手动刷入boot.img和system.img,把它写到envsetup.sh就可以每次使用一行命令来代替了: function flashtestimage(){ if [[ ...

  8. 【BIEE】安装好BIEE后,修改默认登录页面不为QuickStart页面

    已经安装好了BIEE,但是发布了自己的资料库后,默认的登录页面为QuickStart,导致已登录就看到错误页面 现在进行如下修改即可 点击登录身份后的名字,例如我的是weblogic 选择[我的账户] ...

  9. 【Oracle】查看正在运行的存储过程

    select name from v$db_object_cache where locks > 0 and pins > 0 and type='PROCEDURE';

  10. java线程-java多线程之可见性

    可见性:一个线程对共享变量值的修改,能够及时呗其他线程看到. 共享变量:如果一个变量在多个线程的内存中都存在副本,那么这个变量就是这几个线程的共享变量. java内存模型(JMM) 描述了java程序 ...