zoukankan      html  css  js  c++  java
  • 深度理解apache 重写模块rewrite_mod,重写不再犯错

    1.RewriteRule ^(com\/.*)$ index.php?do=$1

    问:上面的规则匹配表达式 "^(.*)$" 匹配的内容是什么

    答:匹配内容是URI
    站点目录:/d/www
    URL:http://127.0.0.1/admin/index.php
    对应本地文件:/d/www/admin/index.php,如果是windows文件系统,由于不区分大小写,如果站点下的目录是Admin,那么这里的文件地址会变成:/d/www/Admin/index.php,下面的URI也会跟着变。
    URI:admin/index.php,这里的URI是从文件系统去掉站点目录的部分与“%{REQUEST_URI}”有区别的。如果站点下的目录是Admin,URI=Admin/index.php

    %{REQUEST_URI}:/admin/index.php,是URL去掉域名的部分

    %{REQUEST_FILENAME}:URL对应本地文件,这里有几点要注意的地方:
    1.windows文件系统下,会自动根据本地的文件夹大小写进行转换
    2.FILENAME会自动去掉多余的部分,如/d/www/admin/setting/index.php,如果admin是个空文件夹,里面没有任何东西,这里的%{REQUEST_FILENAME}=/d/www/admin/setting,估计apache的文件系统是先从顶级目录往下遍历,当某个目录不存时,则从这个不存在的目录地址中断。



    2.无限循环导致报错

    重写规则中有多条RewriteRule,某条被匹配到的RewriteRule标签中加了[L],表示停止分析以后规则的重写,为什么后面的规则还是会运行,

    答:重写流程中,有任何一条RewriteRule被执行,都会用新的变量重复整个流程,直到整个流程都没有发生重写才结束rewrite程序。
  • 相关阅读:
    友元程序集
    反射与dynamic
    GetHashCode作用
    论immutable不可变性
    GetCursorPos函数的使用方法、应用实例(转)
    WIN32 创建线程CreateThread
    动态链接库两种定义方式
    WIN32硬盘文件映射到内存CreateFileMapping
    CreateFileMapping和MapViewOfFile
    WIN32 卷 目录 文件 操作
  • 原文地址:https://www.cnblogs.com/godok/p/6208701.html
Copyright © 2011-2022 走看看