WordPressのマルチサイト設定でのエラーについて教えてください。

マルチサイト設定は子ドメインでうまくいってますが、
親のドメインでwww有りと無しでのサイトのリダイレクトがうまく動作しません。
www.有りをメインにしてますが、無しにアクセスをすると、下記のようなサイト設定の入り口にアクセスしてしまいます。
www.sample.com/wp-signup.php?new=sample.com
htaccessやwp-config.phpを見直しておりますが、書き直されたようなところはありません。

ダッシュボードの設定上の間違いなのかバグなのか?
signupはさせるつもりはありませんので、wp-signup.phpを登録させられないようにしてもかまいませんので
ご教授願いたいのですが。

ちなみにhtaccesにwww無しでのリダイレクトを直接書き込みましたが
反映されませんでした。

よろしくお願いします。

回答の条件
  • 1人10回まで
  • 登録:
  • 終了:2011/12/31 01:43:28
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:rouge_2008 No.1

回答回数595ベストアンサー獲得回数351

ポイント100pt

.htaccessに以下の記述を追加してください。
(※「RewriteCond」でリダイレクトする条件を指定しています。)

RewriteEngine On
RewriteBase /
# ここに以下の4行を追加します。(他の指定より前に記述するようにしてください。)
RewriteCond %{HTTP_HOST} !^www.example.com$
RewriteRule ^/?(index\.php)?$ http://www.example.com/ [R=301,L]
RewriteCond %{HTTP_HOST} !^www.example.com$
RewriteRule ^/?(.+)$ http://www.example.com/$1 [R=301,L]

# 以降はそのまま
RewriteRule ^index\.php$ - [L]


http://tech.bayashi.jp/archives/entry/techweb/2007/001981.html
※「ある条件が揃ったらリダイレクト」を参照してください。


【追記】

マルチサイトで子サイト(?)がサブドメインなのでしたら、以下のようにする必要があるかもしれません。
※上記の記述では子サイトも「http://www.example.com/」にリダイレクトされてしまう可能性があります。(子サイトでは未確認です・・・)
※子サイトがサブディレクトリでの運用の場合は大丈夫なはずです。)

RewriteEngine On
RewriteBase /
# ここに以下の4行を追加します。(他の指定より前に記述するようにしてください。)
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule ^/?(index\.php)?$ http://www.example.com/ [R=301,L]
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule ^/?(.+)$ http://www.example.com/$1 [R=301,L]

# 以降はそのまま
RewriteRule ^index\.php$ - [L]

他2件のコメントを見る
id:Becky_moni

rougeさん
子ドメインでの画像が閲覧できませんでした。
親ドメインでは画像は見えていて、子サイトの投稿での画像がWEBから見えません。

FTPで確認するとファイルは入っており、ダウンロードして見ると問題無く表示されます。
■FTPのディレクトリーは
ドメイン/wp-content/blogs.dir/2/files/2012/01/a.jpg
■ウェブの画像パスは
http://sub.example.com/files/2012/01/a.jpg

URLは間違っていないと思います。
また、問題無くファイルはアップできるので、たぶんhtaccessがこのフォルダーを見させない設定になっているのか?という事で調べています。
いろいろWEBでは同じ事で悩んでいる方が多いのですが、解決策が見つかりません。

一応、htaccessも記述しますのでよろしくお願いします。

########################
RewriteEngine On
#ここにAを入れてみた
RewriteBase /

# ここに以下の4行を追加します。(他の指定より前に記述するようにしてください。)
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule ^/?(index\.php)?$ http://www.example.com/ [R=301,L]
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule ^/?(.+)$ http://www.example.com/$1 [R=301,L]

# 以降はそのまま
RewriteRule ^index\.php$ - [L]


# uploaded files
RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L] // A

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# RewriteCond %{REQUEST_URI} !^/ControlPanel
RewriteRule . index.php [L]
~

2012/01/03 20:22:11
id:Becky_moni

自己報告です。
原因は不明ですが、プラグインをいろいろいじっていたら、画像が見えるようになりました。
なにが悪かったのかは不明なのですが、WP Super Cacheを外したから?なのか
またその他のプラグインが原因だったのかはいまだわかっていません。
とりあえず子サイトの画像が閲覧できるようになりましたので
ご報告させていただきます。
お手数をかけました。

2012/01/04 09:54:28

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

  • WordPress 株式会社Exciter Internal Memo (PukiWiki/TrackBack 0.3) 2012-06-07 12:44:19
    解説サイト http://wpdocs.sourceforge.jp/Main_Page http://blog.off-soft.net/category/wordpress http://elearn.jp/wpman/ http://tenman.info/labo/snip/ http://tenman.info/labo/snip/?page_id=1225 http://mage8.com/wordpress-guide.html ▲ ▼イ
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません