4

現在、このような URL に大量のコンテンツが保留されている Web サイトを再構築しています。

http://string.domain.com/year/month/dd/string-puled-from-title

さまざまな理由から、すべての新しいコンテンツを次のような URL にパークしたいと考えています。

http://www.domain.com/blogs/string/year/month/dd/string-puled-from-title

将来のコンテンツのために変更を加えたいのですが、すべての古いものを 404 にしたくありません。

私の htaccess の 301 リダイレクト ルールは、古いリンクを介して入ってくるすべての参照トラフィックを新しい形式に送信することでうまくいくと思います。

しかし、このルールはどのように見えるべきでしょうか? いくつかのチュートリアルを読みましたが、どの例でもこの正確なケースは見つかりませんでした。

すべてのサブドメインに対してこれを行うのではなく、約 10 の特定のサブドメインに対してのみ行うことに注意してください。したがって、誰かがこれらのいずれかを理解するのを手伝ってくれたら、サブドメインごとに htaccess に 10 回コピーして貼り付けて設定できます。

4

1 に答える 1

4

これを古いサイトのファイルにドロップし.htaccessます(ドメインを実際のものに調整します):

RewriteEngine On
RewriteRule ^(.*)$ http://example.com/blogs/string/$1 [R=301]

これにより、古いサイトの URL のこの部分が取得されます。

year/month/dd/string-pulled-from-title

新しい場所の新しいサイトにリダイレクトします。

blogs/string/year/month/dd/string-pulled-from-title

別の方法として、 each をカスタムで修正することなく、もう少し可変なものが必要な場合は、.htaccess代わりにこれを各サブドメインのファイルにドロップします。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*).example.com
RewriteRule ^(.*)$ http://example.com/blogs/%1/$1 [R=301,L]

同じドメインにリダイレクトしており、そこにwwwが含まれている場合は、書き換えルールを次のように調整します。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*).example.com
RewriteCond %{HTTP_HOST} !^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/blogs/%1/$1 [R=301,L]

要求された URL に先頭の が含まれていないRewriteCondことを確認する2 番目のチェックに注意してください。これは、宛先 URL 自体に含まれている場合、エンドレス リダイレクトにつながる可能性があり、そのサブドメインもリダイレクトしようとします。wwwwww

于 2009-08-07T11:29:20.600 に答える