0

リダイレクトをセットアップしました

RedirectMatch 301 /data(.*) http://www.site.com/sites/default/files/datassheets $1

データシートディレクトリの名前を別の名前に変更すると、次のエラーが発生します http://www.site.com/sites/default/files/datasheetssheetssheetssheetssheetssheetssheetssheetssheetssheetssheetssheetssheetssheetssheets/doc3542.pdf 動作しますが、これはオプションではありません

これはApacheのエラーですか、それとも何か間違っていますか

4

2 に答える 2

1

RedirectMatch 正規表現/data(.*)はすべてのリクエストで一致するため、無期限に継続します。

完全なリダイレクト ルールがどのように見えるかは、ユース ケースによって異なります。次のルールは、無限ループの問題を処理し、 /data/に続くコンテンツをhttp://www.site.com/sites/default/files/datasheets/の新しい構造にリダイレクトします。

RedirectMatch 301 ^/data/(.+) http://www.site.com/sites/default/files/datassheets/$1

/data/ my-cool-file => http://www.site.com/sites/default/files/datassheets/ my-cool-file

于 2013-02-19T19:21:19.590 に答える
0

あなたが後に持っている(.*)部分はあなたのURL/dataで一致しています。sheets次に、その一致を取得して、リダイレクトに追加します。それがあなたに繰り返しの言葉を与えているものです。あなたも自分のサイトにリダイレクトしていると思います。それが何度も繰り返されている理由です。

リダイレクトに追加したいデータの後に何を期待していますか?クエリ文字列の場合は[QSA]、最後にフラグとして追加して、クエリ文字列を維持できます。

例:

RedirectMatch 301 /data/(.*) http://www.site.com/sites/default/files/datassheets/$1 [QSA]

また、任意のディレクトリで始まるページdataは存在してはならないことを全員に伝えているが、削除しようとしているのとまったく同じパターンに一致するページにリダイレクトしていることを考慮してください。おそらく、意図したものにのみ一致するように正規表現を拡張する必要があります。

于 2013-02-19T19:09:24.887 に答える