0

目标是从

/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]
4

1 回答 1

0

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

于 2012-11-14T09:52:18.137 回答