ブログをサブドメインに移動しましたが、サブドメインではすべてのカテゴリが変更されたため、古いドメインからサブドメイン(異なるホスティング)への301のリダイレクトのリストを作成したいと思います。
私が抱えている問題は、末尾のスラッシュを追加することです。そのため、すべてのURLを2回リストする必要はありません。
私はこれを/blog/.htaccess
で試しました:
RewriteEngine On
#RewriteRule ^(.*)$ http://domain.com/blog/$1/ [L,R=301]
Redirect 301 /blog/test/ https://new.domain.com/test/
Redirect 301 /blog/example/ https://new.domain.com/example/
(etc...)
ただし、ブラウザが検出するリダイレクトが多すぎるため、これは機能しません。
ここでの適切な構文は何ですか?
私も試しました:
RedirectMatch /blog/test/?$ https://new.domain.com/test/ [L,R=301]
しかし、それはまったく機能していないようです。
以下の構文を使用してください
_RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !example.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://example.com/$1/ [L,R=301]
_
_RewriteCond %{REQUEST_FILENAME} !-f
_は、既存のファイルにスラッシュが追加されないようにします。
_RewriteCond %{REQUEST_URI} !example.php
_は、書き換えてはならないサンプルURLを除外します。
RewriteCond%{REQUEST_URI}!(。*)/ $は、URLに末尾のスラッシュが含まれていない場合に最終的に起動します。これが私たちが望むすべてです。次に、これらのURLを末尾のスラッシュでリダイレクトする必要があります。
RewriteRule ^(.*)$ http://example.com/$1/ [L,R=301]
は、末尾のスラッシュが追加されたURLに301をリダイレクトします。 domain.comを自分のURLに置き換える必要があります。
動作するように見える構文は次のとおりです。
RedirectMatch 301 /blog/test/?$ https://new.domain.com/test/