Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Apache rewrite的重写相关的参数说明

Apache rewrite的重写相关的参数说明

作者头像
习惯说一说
修改于 2019-07-17 01:52:01
修改于 2019-07-17 01:52:01
1.2K0
举报

Apache的rewrite的重写非常常用,现总结了一下.Apache mod_rewrite规则重写的标志一览

R[=code](force redirect) 强制外部重定向

强制在替代字符串加上http://thishost[:thisport]/前缀重定向到外部的URL.如果code不指定,将用缺省的302HTTP状态码

F(force URL to be forbidden)禁用URL,返回403HTTP状态码。

G(force URL to be gone) 强制URL为GONE,返回410HTTP状态码。

P(force proxy) 强制使用代理转发。

L(last rule) 表明当前规则是最后一条规则,停止分析以后规则的重写。

N(next round) 重新从第一条规则开始运行重写过程。

C(chained with next rule) 与下一条规则关联

如果规则匹配则正常处理,该标志无效,如果不匹配,那么下面所有关联的规则都跳过。

T=MIME-type(force MIME type) 强制MIME类型

NS (used only if no internal sub-request) 只用于不是内部子请求

NC(no case) 不区分大小写

QSA(query string append) 追加请求字符串

NE(no URI escaping of output) 不在输出转义特殊字符

例如:RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE] 将能正确的将/foo/zoo转换成/bar?arg=P1=zed

PT(pass through to next handler) 传递给下一个处理

例如:

RewriteRule ^/abc(.*) /def$1 [PT] # 将会交给/def规则处理

Alias /def /ghi

S=num(skip next rule(s)) 跳过num条规则

E=VAR:VAL(set environment variable) 设置环境变量

使用mod_rewrite时常用的服务器变量:

HTTP headers:HTTP_USER_AGENT, HTTP_REFERER, HTTP_COOKIE, HTTP_HOST, HTTP_ACCEPT

connection & request: REMOTE_ADDR, QUERY_STRING

server internals: DOCUMENT_ROOT, SERVER_PORT, SERVER_PROTOCOL

system stuff: TIME_YEAR, TIME_MON, TIME_DAY

RewriteRule规则表达式的说明:

. 匹配任何单字符

[chars] 匹配字符串:chars

[^chars] 不匹配字符串:chars

text1|text2 可选择的字符串:text1或text2

? 匹配0到1个字符

* 匹配0到多个字符

+ 匹配1到多个字符

^ 字符串开始标志

$ 字符串结束标志

\n 转义符标志

反向引用 $N 用于 RewriteRule 中匹配的变量调用(0 <= N <= 9)

反向引用 %N 用于 RewriteCond 中最后一个匹配的变量调用(1 <= N <= 9)

RewriteCond适用的标志符

‘nocase|NC' (no case)忽略大小

‘ornext|OR' (or next condition)逻辑或,可以同时匹配多个RewriteCond条件

RewriteRule适用的标志符

‘redirect|R [=code]' (force redirect)强迫重写为基于http开头的外部转向(注意URL的变化) 如:[R=301,L]

‘forbidden|F' (force URL to be forbidden)重写为禁止访问

‘proxy|P' (force proxy)重写为通过代理访问的http路径

‘last|L' (last rule)最后的重写规则标志,如果匹配,不再执行以后的规则

‘next|N' (next round)循环同一个规则,直到不能满足匹配

‘chain|C' (chained with next rule)如果匹配该规则,则继续下面的有Chain标志的规则。

‘type|T=MIME-type' (force MIME type)指定MIME类型

‘nosubreq|NS' (used only if no internal sub-request)如果是内部子请求则跳过

‘nocase|NC' (no case)忽略大小

‘qsappend|QSA' (query string append)附加查询字符串

‘noescape|NE' (no URI escaping of output)禁止URL中的字符自动转义成%[0-9]+的形式。

‘passthrough|PT' (pass through to next handler)将重写结果运用于mod_alias

'skip|S=num' (skip next rule(s))跳过下面几个规则

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Apache重载规则详解[二]
续:Apache重载规则详解[一] 要求2: 很多模板技术mvc中总有index.php(显示在地址栏,看着很不友好,这个怎么重载?) 比如: http://www.0377joyous.com/index.php/list/23/ 重载过后显示 http://www.0377joyous.com/list/23/更利于搜索引擎收录 规则可以这样写(这个是TP上的规则) RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENA
苦咖啡
2018/05/07
1.1K0
Apache的URL地址重写(RewriteCond与RewriteRule)
大家好,又见面了,我是你们的朋友全栈君。Apache的URL地址重写 http://hi.baidu.com/sonan/blog/item/c408963d89468208bba16716.html 第一种方法:Apache环境中如果要将URL地址重写,正则表达式是最基本的要求,但对于一般的URL地址来说,基本的匹配就能实现我们大部分要求,因此除非 是非常特殊的URL地址,但这不是我要讨论的范围,简单几招学会Apache中URL地址重写,通过实例展示,轻松学会URL地址重写: URL实例
全栈程序员站长
2022/06/30
2.6K0
Apache之Rewrite和RewriteRule规则梳理以及http强转https的配置总结(完整版)
一. 简单实例介绍 一般来说,apache配置好http和https后,如果想要做http强转到https,需要设置url重定向规则,大致需要下面几个步骤即可完成配置:
洗尽了浮华
2018/09/28
32.2K0
RewriteCond指令格式
语法: RewriteCond TestString CondPattern [flags]
全栈程序员站长
2022/07/01
2.6K0
Apache中 RewriteCond 规则参数介绍[通俗易懂]
Apache中 RewriteCond语句对于我来说一直是个难点,多次试图去把它搞明白,都没有结果,这次我终于算大概知道它的意思了。 RewriteCond就像我们程序中的if语句一样,表示
全栈程序员站长
2022/06/29
4.8K0
Apache 中RewriteRule 规则参数[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。[size=medium] Apache 中RewriteRule 规则参数 Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制。此URL操作可以依赖于各种测试,比如服务器变量、环境变量、HTTP头、时间标记,甚至各种格式的用于匹配URL组成部分的查找数据库。
全栈程序员站长
2022/08/28
3.6K0
phpstudy 什么是伪静态规则
就是动态如何去映射成静态的,一般都是按照正则表达式按照一定的规则写成的。 我们知道如果采用开源程序或自己的程序搭建网站的话,都需要调用数据库的内容,因为这样节约资料而且可以实现多功能的展示。如果需要调用数据,那么由于调用数据库的时候有着复杂的规则和需要完成一定的“行为”,所以这个过程被称之为动态的,目前几乎所有的网站都是动态的网站。 静态网站或纯静态的,是这样一类的网页,也就是被称之为死页面,不会调用数据库,页面的内容不能完成各类交互行为,也不能通过程序改变,如果想修改内容的话必须通过FTP修改完成。 伪静态是介于两者之间的一种处理方式。因为动态是现实的需求,而动态又对搜索的抓取不利(因为会产生大量不同URL对应一个页面),所以在技术上采用了一种方法就是把动态URL按照正则关系进行映射,映射成类似静态的地址,因此被称之伪静态。(伪静态实质还是动态的。)
zhangjiqun
2024/12/17
1560
phpstudy 什么是伪静态规则
PHP扩展模块、Apache之rewrite模块
说明: 在配置文件中加入“extension=redis.so”即可!该文件中“;”表示注释符号,同“#”。
阿dai学长
2019/04/03
2.4K0
Apache中 RewriteRule 规则参数介绍
大家好,又见面了,我是你们的朋友全栈君。Apache中 RewriteRule 规则参数介绍
全栈程序员站长
2022/08/27
12.3K0
Apache 的 ReWrite 的应用
Apache的mod_rewrite是提供了强大URL操作的杀手级 的模块,可以实现几乎所有你梦想的URL操作类型,其代价是你必须接受其复杂性,因为mod_rewrite的主要障碍就是初学者不容易理解和运用,即使 是Apache专家有时也会发掘出mod_rewrite的新用途。 换句话说:对mod_rewrite,或者是打退堂鼓永不再用,或者是喜欢它并一生受用。 ReWrite可以应用在以下方面或者解决以下问题: URL的规划 规范的URL 说明: 在有些网站服务器上,一个资源会拥有多个URL,在实
wangxl
2018/03/07
1.5K0
Rewritecond介绍
RewriteCond Syntax: RewriteCond TestString CondPattern [flags] RewriteCond 指令定义一条规则条件。在一条 RewriteRule 指令前面可能会有一条或多条 RewriteCond 指令,只有当自身的模板 (pattern) 匹配成功且这些条件也满足时规则才被应用于当前 URL 处理。 TestString 是一个字符串,除了包含普通的字符外,还可以包括下列的可扩展结构:
全栈程序员站长
2022/07/01
8180
apache rewritecond_hfile数据格式中的data字段用于
RewriteCond就像我们程序中的if语句一样,表示如果符合某个或某几个条件则执行RewriteCond下面紧邻的RewriteRule语句,这就是RewriteCond最原始、基础的功能,为了方便理解,下面来看看几个例子。
全栈程序员站长
2022/08/18
4.6K0
Apache Rewrite配置url重定向功能教程
 1.Apache Rewrite的主要功能   就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范。平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等   
会长君
2023/04/26
2.4K0
Apache URL重写规则
  Apached的重写功能,即是mod_rewrite模块功能,它是apache的一个模块。它的功能非常强大,可以操作URL中的所有部分。
那一叶随风
2018/08/22
3.2K0
Apache URL重写规则
Apache Rewrite 详解RewriteCond「建议收藏」
语法: RewriteCond TestString CondPattern
全栈程序员站长
2022/08/12
9740
通过URL Rewrite来设置JBoss的301跳转
The rewrite valve implements URL rewrite functionnality in a way that is very similar to mod_rewrite from Apache HTTP Server.
EltonZheng
2021/01/26
3.7K0
ThinkPHP对应Apache、IIS、Nginx的伪静态规则整理
[ IIS ] 如果你的服务器环境支持ISAPI_Rewrite的话,可以配置httpd.ini文件,添加下面的内容
郑洪志
2023/10/21
1.7K0
如何在Debian 9上使用mod_rewrite为Apache重写URL
Apache的mod_rewrite模块允许您以更干净的方式重写URL,将人类可读的路径转换为代码友好的查询字符串。它还允许您根据条件重写URL。
楠宝宝
2018/11/15
5.4K0
Apache URL重定向
Apached的重写功能,即是mod_rewrite模块功能,它是apache的一个模块。它的功能非常强大,可以操作URL中的所有部分。通过改写url,给用户提供一个简介大方的url,当用户访问时可以通过mod_rewrite模块功能转换为真正的资源路径。通过mod_rewrite能实现的功能还有很多,例如隐藏真实地址、实现URL跳转、域名跳转、防盗链、限制访问资源类型等等。
星哥玩云
2022/09/15
5.7K0
如何在CentOS 7上为Apache设置mod_rewrite
Apache是一个模块化Web服务器,允许您通过启用和禁用模块来自定义其功能。这使管理员能够定制Apache的功能以满足其Web应用程序的需求。
SQL GM
2018/10/19
5.8K0
相关推荐
Apache重载规则详解[二]
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档