人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

よろしくお願いします。

●質問者: ベキ
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● rouge_2008
●100ポイント ベストアンサー

.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]


ベキさんのコメント
毎度ありがとうございます。 htaccessに子サイトの追記を書いていただけて感謝しております。 問題無く完璧にできました。 htaccessの疑いはありましたが、自分の書き方が間違っていたようでした。 WordPress側で操作してるのでは?と思っていました。 WPではマルチサイトを作成すると、自分のようなエラーは皆さん起きてないのでしょうか? WEBでかなり調べた結果なのですがわからずでした。 とても感謝しております。 rouge_2008さんはご自身のHPはお持ちなのでしょうか? 是非、いろいろご教授して頂けると幸いです。

rouge_2008さんのコメント
> WordPress側で操作してるのでは?と思っていました。 index.php(WordPress)での処理になる前にmod_rewriteでリダイレクトさせているので大丈夫ですが、後ろの方に記述すると先に元々の記述に該当し、index.php(WordPress)での処理が実行されるので、「www.example.com/wp-signup.php?new=example.com」が表示されます。 > WPではマルチサイトを作成すると、自分のようなエラーは皆さん起きてないのでしょうか? 推測になりますが、おそらくwwwあり・なしでの運用ではなく、どちらか一方か、あるいは「xxxx.exsample.com」のようにサブドメインを一つだけ割り当てて運用しているのではないかと思います。 「wp-signup.php?new」で検索すると、同様の問題にぶつかった人もいるようです。(外国の方ですが・・・) http://www.google.co.jp/search?ix=hca&sourceid=chrome&ie=UTF-8&q=wp-signup.php%3Fnew > rouge_2008さんはご自身のHPはお持ちなのでしょうか? ほとんど稼動していない個人サイトがありましたが、無料レンタルスペースのサービス終了と共に消えたままです。(^^; はてなで質問していただければ、他の回答者もいますし、私も分かる範囲で回答させていただきます。

ベキさんのコメント
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] ~

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

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ