複数のアドレスから同一のWPを呼び出したい
-
こんばんは、始めて利用させていただきます。
「複数のアドレスから同一のWPを呼び出したい」のですがどのようにすれば、又はどのようなプラグインを使えば可能でしょうか?
具体的には
example.jp
hogehoge.jp
というアドレスがありまして、その両方から同じWPを表示したいのですが
WPの方にサイトのアドレスをexample.jpと設定してしまうとhogehoge.jp
からアクセスした時にexample.jpにリダイレクトされてしまいます・・・使用バージョンは2.6.1です
宜しくお願いします。
-
WPの方にサイトのアドレスをexample.jpと設定してしまうとhogehoge.jp
からアクセスした時にexample.jpにリダイレクトされてしまいます・・・これは WordPress 2.3 以降では仕様です。サーチエンジン最適化や閲覧者の利便性のため、サイトの URL を特定の1つに正規化する「標準 URL (Canonical URL)」という仕組みが導入されています。これにより、本来の URL と違う URL でアクセスされた場合、正しい URL にリダイレクトさせて、「正規の URL はこれだ」ということを閲覧者や検索エンジンに伝えようとするわけです。したがって、example.jp へのリダイレクトが発生するわけです。
そこで、「複数のアドレスから同一のWPを呼び出す」というサイト設計を見直すことをおすすめします。何か必然性があるのかもしれませんが、その場合は、その理由をしっかり書いてもらえないでしょうか。
一応、この「標準 URL」の仕組みを殺す方法はあるんですが、その必然性が分からないと、教えにくいです (副作用があるため安易に使えない)。
あと、例示ドメインとして example.jp はよいのですが、hogehoge.jp というのは実在のドメインなので、あなたが所有されているのでない限り使うべきではありません。
JP ドメインの場合、example0.jp 〜 example9.jp も予約されているので、末尾の数値を変えることで使い分ける手があります。見た目の違いが分かりにくいので、例示としていまいちなのですが、「確実に架空のドメインである」ことが保証されているものが限られているため仕方ありません。こんにちは、lilyfanさんありがとうございます。
そこで、「複数のアドレスから同一のWPを呼び出す」というサイト設計を見直すことをおすすめします。何か必然性があるのかもしれませんが、その場合は、その理由をしっかり書いてもらえないでしょうか。
サーバーは社内にあるPCサーバーで運用していまして、192.168.1.250(サーバープライベートIP)が割り当てられているexample2.jp(前記hogehoge.jp)からと
普段使うexample.jp(サーバーグローバルIP)の両方からアクセスしたい為です。example2.jpは社内専用の更新用アドレスです。
example.jpから管理画面にアクセスできないように(Apache側で403エラーを出すように)なる予定ですどちらもApacheのバーチャルホストで/DocumentRoot/wordpress/が指定されています。
あと、例示ドメインとして example.jp はよいのですが、hogehoge.jp というのは実在のドメインなので、あなたが所有されているのでない限り使うべきではありません。
業者サイトに書かれている設定の説明など至る所で使用されているので、普段説明する際に使用していました。
言い出せばきりがないですが・・・説明する際には心がけます。サーバーは社内にあるPCサーバーで運用していまして、192.168.1.250(サーバープライベートIP)が割り当てられているexample2.jp(前記hogehoge.jp)からと
普段使うexample.jp(サーバーグローバルIP)の両方からアクセスしたい為です。なるほど、これだとまさに正当な理由ですね。ネットワーク的には、外向き DNS と内向き DNS を用意して、前者では example.jp をグローバル IP に解決し、後者では example.jp をプライベート IP に解決する手があると思うんですが、これはネットワーク構成をいじらないといけないので大変ですね。
社内からも example.jp (グローバル IP の方) にアクセスできるならば、Apache 側で 403 エラーを出すのはさほど難しくない気がします (アクセス元 IP アドレスが Proxy のものであるかを確認するなど)。社内からは example2.jp しか見れないなら、確かに大変ですね。標準URL の機能を外すには、wp-includes/canonical.php をいじるか、読ませないようにすれば OK です。canonical.php の 248 行目付近にある add_action 関数の前に // をつけてコメントアウトするか、wp-settings.php の 276 行目付近にある
require (ABSPATH . WPINC . '/canonical.php');
の前に // をつけてコメントアウトしてください。# 他には、my-hacks.php に
remove_action(なんちゃら)
を書く手もあります。業者サイトに書かれている設定の説明など至る所で使用されているので、普段説明する際に使用していました。
それはその業者サイトがダメですね。ドメイン例示用の example.com などを知らないことは (その業者が) プロフェッショナルとして情けないことですし、hogehoge.jp ドメインの所有者から訴えられたら負ける可能性が高いというリスクもあります。
可能ならば、すでに使っている説明も順次修正されることをおすすめします。こんばんは、lilyfanさんありがとうございます。
ネットワーク的には、外向き DNS と内向き DNS を用意し
確かにこちらの方がよさそうですが、予算や時間的にもあまりなかったですので、
即使用可能なドメインが購入できたのでこの方法になってしまいました。wp-settings.php の 276 行目付近にある require (ABSPATH . WPINC . ‘/canonical.php’); の前に // をつけてコメントアウトしてください。
WPの方の設定は、上記の方法で期待通りの動作をしました。
他の動作の方も今のところは問題なく動いているようです可能ならば、すでに使っている説明も順次修正されることをおすすめします。
そうですね、なにかの弾みで訴えられたらまず勝てないとおもいます。
資料の方も順に修正したいと思います。lilyfanさんと皆さん、貴重な情報をありがとう御座います。
これからも何かありましたらどうぞ宜しくお願いします。WPの方の設定は、上記の方法で期待通りの動作をしました。
他の動作の方も今のところは問題なく動いているようですcanonical.php の機能として、www の有無を調整するというのがあります (example.jp が本来の URL としたら、www.example.jp へのアクセスを www なしにリダイレクトする等)。canonical.php を外してしまうとこの機能が無効になってしまうので、.htaccess や mod_rewrite などで同じ動作が実現できるよう、検討されるとよいかと思います。
こんばんは、lilyfanさんありがとうございます。
canonical.php の機能として、www の有無を調整するというのがあります (example.jp が本来の URL としたら、www.example.jp へのアクセスを www なしにリダイレクトする等)。
なるほど、そのような些細な気配りがあったのですね。
教えていただき有り難うございます。WPでも使用しているmod_rewriteの方が手軽なようですのでmod_rewriteを使用し、
サブドメインがある場合サブドメインなしのアドレスへリダイレクトするようにしました。
RewriteEngine on
RewriteCond %{HTTP_HOST} .*\.example\.jp
RewriteRule ^/(.*)$ Http://example.jp/$1 [R,L]
(自動リンクが掛かってしまいましたので、hを全角大にかえてあります)再三にわたり貴重なアドバイスを有り難うございました。
何かあった際はお知恵をお借りしたく思います。 宜しくお願いします。
- トピック「複数のアドレスから同一のWPを呼び出したい」には新たに返信することはできません。