(基础)

一、正则表达式

$ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$。^  匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,请使用 \^。.    换行符以外的所有字符\w   匹配字母或数字或下划线或汉字\s   匹配任意的空白符\d   匹配数字\b   匹配单词的开始或结束*   重复零次或更多次+   重复一次或更多次?   重复零次或一次{n}         重复n次{n,}        重复n次或更多次{n,m}       重复n到m次() $1 $2    一个括号代表一个分组,第一个括号里匹配的内容就用$1引用,第二个括号匹配的内容用$2引用,以此类推......

二、 htaccess是什么

概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

Unix、Linux系统或者是任何版本的Apache Web服务器都是支持.htaccess的,但是有的主机服务商可能不允许你自定义自己的.htaccess文件。

三、.htaccess都可以做什么?

.htaccess文件可以的事情,主要包括:文件夹密码保护、用户自定义重定向、自定义404页面、扩展名伪静态化、禁止特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,等等。

四、.htaccess语法介绍

RewriteCond  (可以理解为if)

语法结构

RewriteCond String Pattern [flags]

RewriteCond指令定义一条规则条件。在一条RewriteRule指令前面可能会有一条或多条RewriteCond指令,只有当RewriteCond的条件(CondPattern)匹配成功时,RewriteRule的重写规则才被应用于当前URL处理。

TestString是一个纯文本的字符串,除了包含普通的字符外,还可以包括下列的变量结构扩展:
RewriteMap扩展:引用方法是:${mapname:key|default} 细节请参见RewriteMap指令 。

TestString可以包含服务器变量 ,引用方法是:%{NAME_OF_VARIABLE}

NAME_OF_VARIABLE可以是下表列出的字符串之一:

HTTP_USER_AGENT

HTTP_REFERER

HTTP_COOKIE

HTTP_FORWARDED

HTTP_HOST

HTTP_PROXY_CONNECTION

HTTP_ACCEPT

REMOTE_ADDR

REMOTE_HOST

REMOTE_USER

REMOTE_IDENT

REQUEST_METHOD

SCRIPT_FILENAME

PATH_INFO

QUERY_STRING

AUTH_TYPE

DOCUMENT_ROOT

SERVER_ADMIN

SERVER_NAME

SERVER_ADDR

SERVER_PORT

SERVER_PROTOCOL

SERVER_SOFTWARE

TIME_YEAR

TIME_MON

TIME_DAY

TIME_HOUR

TIME_MIN

TIME_SEC

TIME_WDAY

TIME

API_VERSION

THE_REQUEST

REQUEST_URI

REQUEST_FILENAME

IS_SUBREQ

RewriteRule

语法结构

RewriteRule pattern target [Flag1,Flag2,Flag3]

flags

RewriteRule flag
RewriteRule标记 含 义 描 述
R Redirect 发出一个HTTP重定向
F Forbidden 禁止对URL地址的存取
G Gone 标记URL地址不存在
P Proxy 将URL地址传递给mod_proxy
L Last 停止处理接下来的规则
N Next 再次重第一个规则开始处理,但是使用当前重写后的URL地址
C Chain 将当前的规则和紧随其后的规则链接起来
T Type 强制执行指明的MIME类
NS Nosubreq 只在没有任何内部子请求执行时运行本脚本
NC Nocase URL地址匹配对大小写不敏感
QSA Qsappend 在新的URL地址后附加查询字符串部分,而不是替代
PT Passthrough 将重写后的URL地址传递给另一个Apache模块进行进一步处理
S Skip 忽略之后的规则
E Env 设置环境变量

rewritecond的其他用法:

“-d”(目录)

将TestString视为一个路径名并测试它是否为一个存在的目录。

“-f”(常规文件)

将TestString视为一个路径名并测试它是否为一个存在的常规文件。

“-s”(非空的常规文件)

将TestString视为一个路径名并测试它是否为一个存在的、尺寸大于0的常规文件。

“-l”(符号连接)

将TestString视为一个路径名并测试它是否为一个存在的符号连接。

“-x”(可执行)

将TestString视为一个路径名并测试它是否为一个存在的、具有可执行权限的文件。该权限由操作系统检测。

“-F”(对子请求存在的文件)

检查TestString是否为一个有效的文件,而且可以在服务器当前的访问控制配置下被访问。它使用一个内部子请求来做检查,由于会降低服务器的性能,所以请谨慎使用!

“-U”(对子请求存在的URL)

检查TestString是否为一个有效的URL,而且可以在服务器当前的访问控制配置下被访问。它使用一个内部子请求来做检查,由于会降低服务器的性能,所以请谨慎使用!

常规demo解析

<IfModule mod_rewrite.c>Options +FollowSymlinks -MultiviewsRewriteEngine On //开启RewriteRule ^index.php/(.*)$ https://domain.com/$1 [N,L,R=301] //匹配带有index.php的页面去除index.php并301跳转到 https://domain.com/对应正则匹配的参数 上RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/   //如果是 GET /index.php HTTP/1.1RewriteRule ^index\.php$ https://domain.com/ [R=301,L]  完全匹配 index.php 则301跳转到 https://domain.com/ 上RewriteCond %{HTTP_HOST} !^domain.com$ [NC]RewriteRule ^(.*)$ https://domain.com/$1 [L,R=301]RewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]</IfModule>

全网最全超详细.htaccess语法讲解相关推荐

  1. 超全超详细的HTTP状态码大全

    超全超详细的HTTP状态码大全 本部分余下的内容会详细地介绍 HTTP 1.1中的状态码.这些状态码被分为五大类: 100-199 用于指定客户端应相应的某些动作. 200-299 用于表示请求成功. ...

  2. linux命令行开头是sh,shell脚本语言的使用(超全超详细)

    1.shell的概述 shell 是一种脚本语言 脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译) shell 既是应用程序 又 ...

  3. linux中写脚本一般用语言,shell脚本语言的使用(超全超详细)

    1.shell的概述 shell 是一种脚本语言 脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译) shell 既是应用程序 又 ...

  4. ensp启动设备蓝屏_超全超详细的电脑蓝屏问题解决方案汇总

    生活太难了!每天搬砖已经够不容易,电脑还作妖: 设计图还差最后一个图层,蓝屏了!!财务工资表格马上统计完,蓝屏了?!熬了一宿马上写完1万字稿件,蓝屏了- 今天,我就带大家轻松搞定蓝屏. 什么是蓝屏 蓝 ...

  5. spring mvc学习(24):配置maven环境和创建maven项目(建议收藏,超全超详细)

    1本次歌谣就对如何创建一个maven项目做一个详细的讲解,毕竟卡了我三天,久久不能入眠,也搜了网上很多的博客 都没有顺利的解决maven项目的创建.这篇建议大家收藏,总会用到的.不然大家看网上的博客也 ...

  6. 2021年超全超详细的最新大数据开发面试题,附答案解析

    版本 时间 描述 V1.0 2020-12-18 创建 V1.2 2021-01-17 新增 spark 面试题 V1.3 2021-01-18 新增 kafka 面试题 V1.4 2021-01-2 ...

  7. 奥利给!搞定JVM就靠它了!不看感觉错过一个亿!吐血整理两个月,原创!全网第一份超详细JVM知识点导图!!!

    一.本人原创整理,基于尚硅谷教学视频以及深入理解Java虚拟机 导图地址请查看评论 二.导图总体如下,每一章节,每一个细节点,都有超级详细的记录.以及一些图示,代码等. 1.总体概图,已经有6.8k浏 ...

  8. ♂【超全超详细】2W字零基础小白黑客学习路线,知识体系(附学习路线图)♂

    前言: 这是外网曾经一篇很火的关于如何成为一个黑客的文章,虽然里面提到的一些技术可能有些过时,但就学习方法和思想上,仍然值得我分享给大家. 关注大师的言行, 跟随大师的举动, 和大师一并修行, 领会大 ...

  9. Awesome Adb——一份超全超详细的 ADB 用法大全【转】

    本文转载自:https://juejin.im/entry/57c00fe4c4c971006179838a ADB,即 Android Debug Bridge,它是 Android 开发/测试人员 ...

最新文章

  1. c语言中程序偏离,C语言中的指针加减偏移量
  2. 仿即刻的点赞滚动放大波纹图标
  3. 利用动态规划求连续数组最大和以及最大子矩阵的和
  4. 格雷编码Python解法
  5. 深层剖析鸿蒙轻内核M核的动态内存如何支持多段非连续性内存
  6. 使用CSE轻松实现接口访问控制
  7. javascript设计模式 ---序
  8. colormap保存 matlab_matlab中自定义colormap的保存与调用
  9. 条款一:尽量使用const、inline而不是#define
  10. CIKERS Shane 20190603
  11. paip.软件版本完善计划C426fromVC423
  12. 庖丁解牛之spring源码系列一
  13. [渝粤教育] 西南交通大学 工程流体力学 参考 资料
  14. python 使用 pyodbc 访问 Sql Server
  15. Web大学生网页作业成品——个人班级网站设计与实现(HTML+CSS)
  16. 搭建V2P及中青看点教程
  17. 如何判断选择专业数字功放芯片
  18. 《文法俱乐部》读书笔记之动词时态--LG二进制
  19. TDengine RESTful 客户端
  20. 磁盘清理软件 智能清理Mac

热门文章

  1. 有没有必要买ipad手写笔?ipad手写笔哪个品牌好
  2. python 时间等待函数
  3. 《深入分析JavaWeb技术内幕》之读书笔记(篇一)
  4. css自适应屏幕教程,WordPress主题css适配屏幕尺寸大小自适应教程
  5. 元旦插画素材|新年伊始,恭贺崭新2021,旭日东升!
  6. 提升苹果电脑速度的10个小技巧
  7. R语言使用rnorm函数生成正态分布随机数、自定义指定生成随机数的个数、均值、方差
  8. python测验7答案_中国大学MOOC的APP(慕课)2021用Python玩转数据章节测验答案
  9. 袁老师行书分析7/14
  10. 支付宝-转账到支付宝账号接口(新接口)