RewriteCond 不匹配,但字面上应该匹配

问题描述 投票:0回答:1

目标是从

进行重定向
/Swiss+Military/something..

/Swiss+Military+Hanowa/something..

我已经尝试过:

RewriteCond %{REQUEST_URI} /Swiss+Military/(.*)
RewriteRule .* /Swiss+Military+Hanowa/%1 [R=301,L]

9 级重写日志显示以下内容:

RewriteCond: input='/Swiss+Military/' pattern='/Swiss+Military/(.*)' => not-matched

我不明白为什么它不匹配.. 有什么想法吗?

已解决 - 需要逃脱 + 图案处的标志(我自己怎么不记得了)

编辑 对于这种情况,还有更好的解决方案(我没有在一开始就提出它,因为它不起作用 - 与发布的原因相同) - 只需一个 RewriteRule:

RewriteRule /Swiss\+Military/ /Swiss+Military+Hanowa/ [R=301,L]
regex mod-rewrite
1个回答
1
投票

RewriteCond 使用 Perl 语法作为模式。这意味着模式中的“+”表示“匹配 1 个或多个”(前一个字符)。尝试通过在模式中的“+”前面添加斜杠来转义它,如下所示:“\+”。

© www.soinside.com 2019 - 2024. All rights reserved.