.htaccess 中 $1 与 %1 之间的差异

Posted

技术标签:

【中文标题】.htaccess 中 $1 与 %1 之间的差异【英文标题】:Difference between $1 vs %1 in .htaccess 【发布时间】:2011-10-03 01:07:41 【问题描述】:

.htaccess 中的%1$1 有什么区别?

例如,

    #  to remove www  
    RewriteCond %HTTP_HOST ^(\w+)\.mydomain\.com [NC]

    RewriteRule .* http://mydomain.com/%1 [R=301,L]    
    #    versus
    #    RewriteRule .* http://mydomain.com/$1 [R=301,L]

我一直在使用 Dave Child's .htaccess cheat sheet 和 Jackol's .htaccess cheat sheet 以及 Apache mod_rewrite docs,但额外的帮助会很棒。

【问题讨论】:

mod_rewrite 文档说 %N 反向引用用于 RewriteCond 模式,而 $N 反向引用用于 RewriteRule 模式。 【参考方案1】:

%1 指的是在RewriteCond 条件中匹配的模式,而$1 指的是在RewriteRule 中匹配的模式。

更一般地,使用%n 来引用来自RewriteCond 条件正则表达式模式的编号匹配,并使用$n 来引用来自RewriteRule 正则表达式模式的编号匹配。

【讨论】:

以上是关于.htaccess 中 $1 与 %1 之间的差异的主要内容,如果未能解决你的问题,请参考以下文章

计算数据框中所有行与特定行之间的差异

神经网络中“节点”与“输入”之间的差异

RabbitMQ与Kafka之间的差异

PHP 和 .htaccess 重定向之间的区别

iOS,Swift中UTC登机时间与当前时间之间的差异

重新安装与设置显示之间的性能和内存差异=“无”