web-dev-qa-db-ja.com

サブフォルダーのあるURLをサブフォルダーのない同じURLにリダイレクトする方法は?

example.com/blogにWordPressサイトがあります。ここで、/blogサブディレクトリを削除して、example.comのみを保持します。

ただし、私のサイトを参照している他のサイトは、まだexample.com/blogを指します。 example.com/blogへの投稿やページを含むすべてのトラフィックをexample.comにリダイレクトするにはどうすればよいですか?

1
TSR

サイトを既に/blogサブディレクトリからドキュメントルートに移動し、WordPress内のURL構造を変更しているため、/blogサブディレクトリがすべての内部リンクに含まれていない場合、単純なリダイレクト(mod_rewriteを使用)を行うことができます/blog/.htaccessファイル(推奨):

RewriteEngine On
RewriteRule (.*) /$1 [R=302,L]

directoryコンテキストで使用された場合、キャプチャされた後方参照(/blog/foo)にはディレクトリプレフィックスが含まれないため、これは/foo形式のURLを$1にリダイレクトします。

または、/blogサブディレクトリをすべて削除する場合は、ルート.htaccessファイルの先頭でbefore WordPressフロントコントローラーの次のように実行できます。

RewriteRule ^blog/(.*) /$1 [R=302,L]

これらは現在302の一時的なリダイレクトであることに注意してください。正常に機能していることが確実な場合にのみ、301パーマネントリダイレクトに変更してください。

1
MrWhite