• Apache Rewrite 拟静态


    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
  • 相关阅读:
    汉字转拼音
    多数组求笛卡尔积
    curl post参数,接口接收不到数据问题
    判断IMEI或MEID是否合法
    javascript 可控速度的上下拉菜单
    去掉android点击事件产生的半透明蓝色背景
    go.js是什么
    jQuery效果——动画
    jQuery选择器
    vue全局组件局部组件的使用
  • 原文地址:https://www.cnblogs.com/xishaonian/p/6701618.html
Copyright © 2020-2023  润新知