0

私には奇妙に思える状況に遭遇しました。Apache 書き換えルールを構築する際の後方参照変数は、最初の使用後に失われるようです。

私の要件は、古い URL パターンを新しいパス パターンに準拠するように変更することです。

www.example.com/documents/newsletter/newsletter-issue-50.htm

なる

www.example.com/sites/default/newsletter/50/English/newsletter-issue-50.htm

ご覧のとおり、新しい URL パターンでは、発行番号を 2 か所で指定する必要があります。

私の書き換えルールは次のとおりです。

RewriteRule ^documents/newsletter/newsletter-issue-(.*).htm$ http://www.example.com/sites/default/newsletter/$1/English/newsletter-issue-$1.htm [R=301,L]

このルールを使用すると、結果の URL で 2 番目の「$1」が課題番号 (この場合は「50」) に置き換えられないため、404 が返されます。私が得るものは

http://www.example.com/sites/default/newsletter/50/English/newsletter-issue-.htm

このテスト サイトを使用したところ、2 番目の後方参照変数がまったく評価されていないことが確認されました。単純なルールを導入する必要があるため、ここに何かが欠けていると確信しています。

これに関するヘルプは大歓迎です。

ありがとう。

4

1 に答える 1

0

奇妙なことに、2 組の括弧で囲むと、リライト テスターで動作します。

RewriteRule ^documents/newsletter/newsletter-issue-((.*))[.]htm$ http://www.example.com/sites/default/newsletter/$1/English/newsletter-issue-$1.htm [R=301,L]

ファイル拡張子のプレフィックスもエスケープしました

于 2012-09-26T10:12:34.827 に答える