0

このスレッドに続く別の質問。私が解決できない唯一の残りの項目は、現在存在しないフォルダー'/ team /'のリストがあることですが、これを.htaccessファイルに追加すると、次のファイルの他のすべての.htaccessエントリが壊れます。そのフォルダ、すなわち

redirect 301 /team/ /team.html
redirect 301 /team/joe_bloggs.htm /team.html
redirect 301 /team/joe_bloggs.html /team.html
redirect 301 /team/bill_smith.htm /team.html
redirect 301 /team/bill_smith.html /team.html

その後、/ team / joe_bloggs.htmにアクセスしようとすると、次のようになります。

/team.html/joe_bloggs.htm

これを修正できれば、元の質問を解決し、.htaccessファイル内のリダイレクトページの膨大なリストを減らす方法を理解するのに役立つ可能性があります。

4

2 に答える 2

1

redirect 301 /team/ /team.html順番を変えて、最後に「」を付ける必要があります。行ごとに読み取り、適切なものが見つかった場合はそれを置き換えます。

さらに、^と$の文字を追加する方法を学ぶ必要があると思います。^は式を開始する必要があることを意味し、$は式を終了する必要があることを意味します。つまり、^/team/$正確に/ team /である必要があり、一致しません/team/joe_bloggs.htm

于 2009-12-25T11:57:24.923 に答える
0

Redirectディレクティブはパスプレフィックスで機能します。この場合、最初のディレクティブ(/team/)で使用されているパスプレフィックスが一致し、残りのパスが新しいURLパスに追加されます。

[…]で始まるURL-Pathリクエストは、ターゲットの場所にあるクライアントにリダイレクトリクエストを返しますURL。一致したもの以外の追加のパス情報URL-Pathがターゲットに追加されURLます。

RedirectMatch代わりに試してください:

RedirectMatch 301 ^/team/ /team.html
于 2009-12-25T11:49:23.703 に答える