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

なぜ一致しないのかわかりません。何かアイデアはありますか?

解決済み-パターンで+記号をエスケープする必要があります(どうして私は自分自身にそれを思い出させなかったのですか)

編集 この場合にはさらに良い解決策があります(投稿されたものと同じ理由で、機能しなかったため最初に配置しませんでした)-ただ1つのRewriteRule:

RewriteRule /Swiss\+Military/ /Swiss+Military+Hanowa/ [R=301,L]
4

1 に答える 1

0

RewriteCondは、パターンにPerl構文を使用します。つまり、パターンの「+」は、(前の文字の)「1つ以上一致する」ことを意味します。次のように、パターンの前にスラッシュを付けて、パターンの「+」をエスケープしてみてください:「\+」。

于 2012-11-14T09:52:18.137 に答える