0

ディレクトリ、およびそのディレクトリ内のすべてのサブディレクトリとファイルを同じ場所 (ルート) にリダイレクトする必要があります。/oldそのため、/old/folder、 、/old/other-folder/xy/page.php、または「古い」フォルダ内の他の場所にアクセスしようとする人は誰でも、ルート ドメインにリダイレクトする必要があります。

これまでのところ、私はこれを持っています:

Redirect 301 ^/old/.*$ /

これが最善の方法ですか、それとも(.*)の代わりに使用する方がよいでしょう.*か? 2つの違いは何ですか?

または - 上記のように Redirect の代わりに RewriteRule を使用する必要がありますか? もしそうなら、なぜですか?

ありがとうございました!

4

2 に答える 2

1

ディレクティブはRedirect正規表現を使用しません。これは 2 つのパス ノードを接続しますが、これはまさにあなたが望むものではありません。RedirectMatch代わりにディレクティブを使用してみることができます:

RedirectMatch 301 ^/old/ /
于 2012-10-11T18:55:37.893 に答える
0

これを試すことができます

RewriteEngine On
RewriteBase /
RewriteRule ^old/?(.*) /$1 [R=301,NC,L]

すべての古いページをホームページ/ルートにリダイレクトしたいだけの場合(何が必要か正確にはわかりません)、最後のrewriteuleを次のように置き換えることができます

RewriteRule ^old/.* / [R=301,NC,L]
于 2012-10-11T17:38:04.733 に答える