Apache:详解QSA,PT,L,E参数的作用

FastAdmin伪静态配置避坑指南:Apache环境下常见错误与解决方案 本文详细介绍了在Apache环境下配置FastAdmin伪静态的常见问题与解决方案,包括环境检查、基础规则配置、错误排查及性能优化。特别针对ThinkPHP框架和mod_rewrite模块的使用提供了实用技巧,帮助开发者快速解决伪静态配置中的各种疑难杂症。 阅读详情

 [QSA]


当被替换的URI包含有query string的时候,apache的默认行为是,丢弃原有的query string 并直接使用新产生的query string,如果加上了[QSA]选项,那么旧的query string 将会与新产生的query string组合起来,产生一个新的query string 

Demo:

RewriteRule "/pages/(.+)" "/page.php?page=$1" [QSA]

当访问:/pages/123?one=two 

会重写成: /page.php?page=123&one=two

如果不用[QSA]

会重写成:/page.php?page=123

[PT]


在RewriteRule中的目标串(被替换完的路径)都会被看做是文件路径,使用[PT]选项能够让apache将其看作是URI来对待。这也就是说,使用了[PT]选项,能够使得RewriteRule的结果重新加入到URL的匹配当中去,让那些基于本地匹配的,例如Alias, Redirect, or ScriptAlias,能够有生效的机会。

Demo:

Alias "/icons" "/usr/local/apache/icons"

RewriteRule "/pics/(.+)\.jpg$" "/icons/$1.gif" [PT]

如果你有一个Alias给/icons,并且有一个RewriteRule,那么你需要使用[PT]选项来确保Alias会被计算到

如果漏了[PT]选项,那么会导致报出 'File not found' 的错误

[L]


[L]能够使得mod_rewrite 停止处理规则集。在众多contexts中,这意味着,一旦规则匹配了,就没有后续规则会被处理。这相当于Perl的last命令,或者C的break命令。使用这个flag去指示当前规则应该立即应用,不用管后续的规则!

如果你也使用了RewriteRule在 .htaccess 或者在 <Directory> 中那么理解规则的处理过程是非常重要的。简单来说,一旦规则被处理,就会发起一个重写请求给URL解析引擎去重新处理这个url(译者注:就是重写的结果)。当这个重写请求被处理的时候,.htaccess 和 <Directory>就会被重新收集,因此规则集就会重新匹配。通常来说,如果一个规则导致重定向到-,无论是内部重定向还是外部重定向,都会让请求过程重新开始。

也是因为这个原因,如果你使用 RewriteRule 指令在某个context中,那么你要非常注意,防止闭环规则。并且不要单单关注有[L]flag那个结束执行一系列规则的那一条,还要理解整个流程。

有个可选的flag,[END],能够结束不单单是当前这一round的重写过程,还能阻止后续的重写过程。

Demo:

RewriteBase "/"

RewriteCond "%{REQUEST_URI}" "!=/index.php"

RewriteRule "^(.*)" "/index.php?req=$1" [L,PT]

上面的demo会重写所有请求到index.php,将原始请求作为一个query string参数给index.php,利用RewriteCond来确保如果当前请求已经是到index.php的,那么就跳过

 RewriteRule。

[E]


通过[E],或者[env] flag,你可以设置环境变量。记住,有一些环境变量会在规则运行之后被设置,因此有可能会覆盖掉你设置的值。查看 the Environment Variables document 这个文档能够知道更多环境变量的运作。

完整的语法如下:

[E=VAR:VAL]

[E=!VAR]

Demo:

RewriteRule "\.(png|gif|jpg)$" "-" [E=image:1]

CustomLog "logs/access_log" combined env=!image

 

 

参考链接:http://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_l

FPGA时钟架构解密:从SRCC/MRCC到全局时钟树的实战指南 本文深入解析Xilinx 7系列FPGA时钟架构,从SRCC/MRCC引脚特性到全局时钟树设计,详细介绍了BUFG、BUFMR等关键组件的应用场景和优化策略。通过对比SRCC与MRCC的驱动范围及适用场景,提供低抖动时钟布线技巧和时钟域交叉(CDC)设计方法,帮助工程师构建高性能FPGA时钟系统。 阅读详情

相关推荐

从0到1:提示工程架构师搭建Agentic AI系统的全流程实战手册

Agentic AI(自主智能体)是具备自主决策能力的大模型应用感知(Perceive):获取外部环境信息(比如代码仓库、用户输入、数据库数据);记忆(Memory):存储和检索历史信息(比如过去的审计记录、用户偏好);规划(Plan):将复杂任务拆解为可执行的步骤(比如“代码审计”拆成3步);行动(Act):调用工具或API完成具体操作(比如调用Git克隆仓库、调用Safety查漏洞);反馈(Feedback):根据结果调整策略(比如用户说“报告不够详细”,下次增加逻辑漏洞的分析深度)。

AI Agent Harness Engineering 1042

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] 是什么意思?

<IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule> 1、排除一些条件,必须两个条件都满足后才重定向到index.php //如果你访问的文件不等于目.

滴水石穿 3245

忆阻器(二)——忆阻模拟器

除了真实的器件,我们也可以用运放和乘法器来搭忆阻模拟器。这节将介绍数学模型、matlab仿真及multisim仿真。 一、数学模型 忆阻分为磁控和荷控两种,这里介绍三次非线性磁控忆阻模型: {I=W(φ)VW(φ)=a+3bφ2dφdt=V \begin{cases} I=W(\varphi)V \\ W(\varphi)=a+3b \varphi ^2\\ \frac{d \varphi }{dt}=V \end{cases} ⎩⎪⎨⎪⎧​I=W(φ)VW(φ)=a+3bφ2dtdφ​=V​ 这里的WWW

http://www.icfgblog.com/ 1万+

Apache中 RewriteRule 规则参数介绍

Apache中 RewriteRule 规则参数介绍 摘要:Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制。这里着重介绍 RewriteRule 规则以及参数说明。 Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写...

weixin_30617561的博客 845

避坑指南:锐浪报表PictureBox打印图像常见的5大问题及解决方案

本文深入剖析了锐浪报表(Grid++Report)中PictureBox控件打印图像时常见的五大难题,包括图像源加载机制、拉伸失真、动态加载失败、跨平台兼容性及性能优化。文章提供了从原理理解到实战解决方案的完整指南,帮助开发者有效规避图像打印中的常见陷阱,确保报表输出的稳定与高质量。

water的专栏 1148

Cadence仿真实战:从零构建高精度带隙基准电压源

本文是一份详细的Cadence仿真实战指南,指导读者从零开始构建高精度带隙基准电压源。文章首先解释了带隙基准电压源稳定输出电压的原理,然后逐步演示了在Cadence Virtuoso环境中如何搭建测试电路、测量关键温度系数、计算并搭建核心电路,并通过参数扫描和迭代调优来驯服温度漂移,最终实现低漂移的基准电压输出。

weixin_29207533的博客 243

htaccess 正则规则整理(转)

为了方便 htaccess 编写正则,这里整理了一下 htaccess 的正则规则。 # —— 位于行首时表示注释。 [F] —— Forbidden(禁止): 命令服务器返回 403 Forbidden错误给用户浏览器 [L] —— Last rule(最后一条规则): 告诉服务器在本条规则执行完后停止重写URL [N] —— Next(下一条规则): 告诉服务器继续重写,指导所有重...

weixin_33858336的博客 261

AnyGrasp实战指南:从环境配置到抓取检测与跟踪

本文详细介绍了AnyGrasp从环境配置到抓取检测与跟踪的实战指南。涵盖硬件要求、关键依赖安装避坑、抓取检测与跟踪的实战技巧,以及常见问题解决方案和性能优化建议,帮助开发者快速掌握这一高精度物体抓取检测与跟踪技术。

weixin_33712987的博客 274

php url重写配置,thinkphp url重写规则及wamp配置

thinkphp的案例中有一个.htaccess文件,里面配置了URL的一些重写规则,如:RewriteEngine onRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]它的作用就是设置URL重写以隐藏URL中含有的inde...

weixin_28674303的博客 418

802.1x之EAP-TLS测试方法

CA证书一般是由权威的认证机构发出,用来验证该机构签名的证书,持有CA证书的设备可以验证对端的证书是否由自己信任的机构颁发的。在我们内部使用证书时,我没可以自己充当CA认证机构,管理私钥和CA证书,使用他们签名服务器、客户端证书。2、使用证书请求文件server_csr.pem、CA私钥、CA公钥生成服务器证书(正常情况下自己不拥有CA私钥,是把证书请求文件发给认证机构,由认证机构返回证书)进行802.1x EAP-TLS认证时需要IPC、服务器分别存储CA证书、设备证书、私钥,通过交换证书实现身份验证。

写作是为了更好的思考 2164

vue3+vite:引入tailwindcss不生效的原因,详细解决Tailwind配置没问题但就是不生效的情况,配置正确无报错但样式没有生效(包括tailwindcss在Vue2使用不生效解决方案)

vue3 tailwind使用教程以及tailwind不生效的问题,vue3+vite引入tailwindcss不生效的原因,tailwindcss配之后不生效怎么办,如何解决tailwinscss不生效的原因,Vue3项目使用tailwindcss在Vue2使用,不生效解决,如何解决使用 Tailwind CSS 后出现的样式不生效的问题?tailwindcss配之后不生效 tailwindcss不生效,为什么我的 Tailwind css 类没生效,解决使用 Tailwind 时样式不生效的问题,配置没

✅ 精选推荐文章 4128

.htaccess文件常见到[QSA][NC][L][R][F]的意思

.htaccess文件常见到[QSA][NC][L][R][F]几个字符在代码末尾,下边列出它们在静态规则中的作用,以备参考。 NC : no case,不区分大小写,忽略大小写; L : last,表示已是最后一条规则,.htaccess文件解析将退出; R : redirect,重定向; F : forbidden,禁止访问。...

weixin_30532837的博客 719

Redhawk: 为什么STA CHECK中switch cell覆盖率为0(STA file中switch control pin没有timing window)?

如题,做dynamic analysis时,不需要switch cell的timing window信息,但是做low power analysis需要做上电时switch cell的timing window就是必须的了,本文对switch cell control pin没有timing window (STA CHECK覆盖率为零)的这种现象做分析。

m0_61544122的博客 1197

安装TP5.1 windwos在phpStudy Apache 下静态方法的设置

修改public文件夹下.htaccess文件 修改方法 把RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L], 改成:RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]

php菜鸟技术天地 1245

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Apache .htaccess规则说明

RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^article-(.*)$ index.php/Home/Article/detail/id/$1 [L,NC] RewriteRule ^index-(.*)-(.*).html$ index...

tyasd 8272

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

FastAdmin伪静态配置避坑指南:Apache环境下常见错误及解决方案

本文深入解析FastAdmin在Apache环境下的伪静态配置,涵盖mod_rewrite模块激活、文件权限设置及规则语法优化。通过实战案例和错误排查指南,帮助开发者避开常见陷阱,确保URL重写功能正常运行,提升网站安全性和SEO效果。

cc789的博客 988

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

TP5 无法获取到GET参数(apache)

这种情况很可能是和服务器配置相关的。 例如本人的情况就是下载了一个新的项目,但是里面的.htaccess文件有问题导致无法获取到get参数, 原来的是这样: &lt;IfModule mod_rewrite.c&gt; Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME...

stephen 4421

windows下 apache配置rewrite错误解决

你的Apache安装文件夹conf里找到httpd.conf文件索LoadModule rewrite_module modules/mod_rewrite.so 如果前面有注释符号#,请去掉。 搜索Options FollowSymLinks,然后将它下面的AllowOverride None 修改为AllowOverride All;【1】没想到遇见了 No input file specif

xueling022的专栏 1621

apache url rewrite 的RewriteRule参数详解

apache url rewrite 的RewriteRule参数详解 我们经常会在apache那边对一些url进行一些重写操作,那么就会涉及到很多的重写策略的选择,比如重定向的方式,参数的处理,规则匹配的顺序等。 比如我们某个应用会有下面的url rewrite规则:下面是对于域名imall.test.com访问的时候需要重定向到http://page.test.com/channel/im...

weixin_30580943的博客 104

php get取不到参数,TP5 无法获取到GET参数

这种情况很可能是和服务器配置相关的。例如本人的情况就是下载了一个新的项目,但是里面的.htaccess文件有问题导致无法获取到get参数,原来的是这样:Options +FollowSymlinks -MultiviewsRewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRew...

weixin_42508290的博客 821

apache thinkphp index.php,Thinkphp5 部署Apache URL重写问题

我们写好的代码往往部署于Linux上,为了安全和URL的美观,经常会利用 Apache或者 Nignx 进行URL 重写。下面介绍几种Apache URL 重写的配置:官方配置:Options+FollowSymlinks-MultiviewsRewriteEngineonRewriteCond%{REQUEST_FILENAME}!-dRewriteCond%{REQUEST_FIL...

weixin_39828198的博客 245

tp5.1 配置Apache入口访问文件

官方访问文件 <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule> phpstudy访问文件 <IfM

qq_38769583的博客 1462

thinkphp5在apache中重写规则不生效的问题[No input file specified.]解决

解决办法 首先请确保你的vhost配置正确,因为这篇文章不是解决vhost配置的问题的,我自己的vhost中配置如下: &lt;VirtualHost *:80&gt; DocumentRoot "E:\project\siku_admin\service\public" ServerName local.api.sikukeji.com ServerAlias *.lo...

Marswill 4597

php sql判断l列的存在,thinkphp 模块不存在:404

遇到的问题是:在thinkphp5.0框架下,出现错误----模块不存在:404? 问题跟踪分析:不管是打断点还是var_dump,都可以分析到 Request.php 下的函数/*** 获取当前请求URL的pathinfo信息(含URL后缀)* @access public* @return string*/public function pathinfo(){if (is_null($this...

weixin_29577845的博客 238
上一篇: (转载)nginx下支持PATH_INFO详解
下一篇: vscode增加xdebug扩展
xiaolu289
博客等级 码龄19年 8粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值