web-dev-qa-db-ja.com

.htaccessの永続的なリダイレクトwww

WordPressインストールがあり、wwwで始まっていないURLをリダイレクトしていません。

例:http://example.com/dir/http://www.example.com/dir/に送信せず、代わりにhttp://example.com/に送信します。

以下の。htaccessを変更して、常にwwwを使用するかしないかを変更するにはどうすればよいですか?

# BEGIN WordPress
RewriteEngine On

RewriteBase /
RewriteRule ^index\.php$ - [L]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

# END WordPress
7
UXTE

このスニペットにより、wwwが常にURLに含まれるようになります。それがあなたに役立つかどうかわかりません:

Options +FollowSymlinks
RewriteCond %{HTTP_Host} !^(www\.|$) [NC]
RewriteRule ^ http://www.%{HTTP_Host}%{REQUEST_URI} [R=301,L]
8
John Conde

。htaccessを変更する必要はありません。 WP AdminのSettings-> GeneralでWebサイトのURLを変更するだけで、wwwを含めることができます。

ジョンの答えを試して、WP設定にnon-wwwバージョンに設定されたWebサイトのURLがある場合、リダイレクトループを作成します。

0
Robert Waddell

上記の2つの答えを混ぜます

  1. webサイトのURLを適切に設定する必要があるため、CMSは常に正しいアドレスを印刷します
  2. 適切な書き換えルールを設定して、誰かが間違ったURL(no-www)をリンクした場合に、Googleがすべてのページを2回インデックス付けしてSEOランキングにペナルティを課さないようにすることができます。
0
user1555320