2

私は検索し、さまざまな例を試しましたが、リダイレクトステートメントの明示的なリストを作成する以外に何も機能していないようです。
私が抱えている最大の問題は、Web ページをサイトに展開するためのアクセス権はありますが、Web ホスティング コントロール パネルにアクセスできないことです。サイト アクセス権は継承されており、今までは問題ありませんでしたが、古いバージョンの apache を実行するか、ルールを書き換えることは許可されていません。
とにかく、何年にもわたってサイトは何度か変更されており、Google Webtools にサイトを登録した後、クロール エラーが発生したページのリストを見つけたので、これらに対処するために HTACCESS ファイルを作成しました。
何年にもわたって、キャメルケースとすべて小文字で名前が付けられたフォルダーが展開されていたため、フォルダー内のすべてのファイルを .htaccess ファイルレベルの新しいフォルダー、つまり
現在 My .HTACCESSにリダイレクトするだけでした。 120 行あり、
バッチの例は次のとおりです 。 /Challenge/Record.htm /lsr_history.html リダイレクト 301 /Challenge/Stanley_Steamer.htm /lsr_history.html リダイレクト 301 /Challenge/Sponsors/Avery_Weigh-Tronix.htm /sponsors.html リダイレクト 301 /contact/index.html /contact.html






リダイレクト 301 /design/details.html /design.html
リダイレクト 301 /design/index.html /design.html
リダイレクト 301 /Design/Engine-drive_train.htm /design.html
リダイレクト 301 /Design/Rear.htm /design.html
リダイレクト 301 /Design/Home_Page.htm /design.html
リダイレクト 301 /Design/index.htm /design.html ご覧の
とおり、フォルダー名がキャメルの場合と、それより低い場合と、 htm と、クロール エラー ログにリストされている同じ名前の html ファイル。
上記の例では、すべてのページを /Challenge/ および /challenge/ から lsr_history.html にリダイレクトし、/Challenge/Sponsors/ 内のすべてのファイルを Sponsors.html にリダイレクトしたいだけです。
また、個々のチーム ページの膨大なリストを 1 つずつリストし、それぞれが新しいチーム ページにリダイレクトされます。 RedirectMatch 301 ^/[Cc]hallenge/ /challenge.html の
ような例を試しましたが、これは「Error 404 Not found」を返します。 これを簡素化するために htaccess ファイルを削減する方法のアイデアや例は、ありがたく受け取ります。 よろしく マーティン



4

1 に答える 1

1

この種のことを避けることができれば、一致文字列内でケースを検索する必要はありませんRedirectMatch。小文字で指定して[NC]、すべての行の末尾に追加してみましたか? (これにより mod_rewrite は大文字と小文字を区別せずに一致するようになり、時間を節約できます)

同様にフォーマットされた書き換えのコレクションがある場合、それらをそれぞれの特定のルール セットでグループ化してみませんか? そうすれば、たとえば、1 つのサブディレクトリを持つすべての受信 URL を 1 つのルールでカバーし、すべての受信 URL を別のルールを持つ 1 つのサブディレクトリでカバーできます。他に何もないとしても、.htaccess ファイルの表示を簡素化するのに役立ちます :)

(私が提案するすべてを大量の塩で取ってください。私はまだ mod_rewrite の黒魔術を自分で把握しています)

于 2010-01-18T18:00:21.640 に答える