私は自分のラップトップ上でlocalhostを使ってWPサイトを運営しています、そしてそれを見るために私の同僚がしばしば必要です。彼らが私の家のIPアドレスを入力した場合、彼らはそのサイトにアクセスすることができましたが、site_url()などを使用したWPのURLはすべて「localhost」とエコーしていました。
それで私はWPをその問題を解決するサイトURLのために私のIPを使うように変更しましたが、もう一つを作成しました。ノートパソコンを自宅から持ち帰って自分のサイトを表示しようとすると、すべてのリンクが http:// home-ip/ のように表示されるので、使用できません。さらに、 http:// home-ip/site/wp-admin/ にリダイレクトされているため、サイトURLをlocalhostに戻すためにwp-adminにアクセスすることはできません。
他の人が外部からアクセスするたびに、または家を出るたびに常にURLを変更することなく、これに対処する方法はありますか。
wp-config.php
を使用すると、$_SERVER['REMOTE_ADDR']
を使用して、サイトのアクセス元に応じてサイトのURLを変更できます。私のものはこんな感じです:
if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1' || $_SERVER['REMOTE_ADDR'] == '::1') {
// accesing site from my local server
define('WP_SITEURL', 'http://localhost/mysite/');
define('WP_HOME', 'http://localhost/mysite');
} else if (strpos($_SERVER['REMOTE_ADDR'],'192.168.0.') !== false) {
// accesing site from another machine in my home network,
// all their (internal) network addresses begin with this number;
// the next line provides the server's own internal network address
define('WP_SITEURL', 'http://192.168.0.192/mysite/');
define('WP_HOME', 'http://192.168.0.192/mysite');
} else { //accesing site from outside home
define('WP_SITEURL', 'http://89.*.*.*/mysite/'); //replace by your external home IP
define('WP_HOME', 'http://89.*.*.*/mysite');
}
//error_log("Siteurl is ".WP_SITEURL);
このテクニックは、サイトを本番サーバーにアップロードしたり、サイトのローカルバージョンと本番バージョンを同期させたりするのにも非常に役立ちます。 (ただし、明らかに、運用サーバー上のwp-config.php
にこのコードを含めるべきではありません。)
注意:何らかの理由で、ホームネットワーク内の他のマシンから自分の外部ホームIPを使用することはできません。そうでない場合は、else
部分だけを残して、else if
を削除できます。
私の場合は、WP_SITEURL/WP_HOMEを変更するだけではうまくいきません。なぜなら、ページ上のテキストコンテンツには常に絶対リンクがたくさんあるからです(つまり、WYSIWYGエディタを通して追加された画像やリンク)。 。言い換えれば、私はサイトを適切に動作させたいのであれば、ほぼ同じドメインを使うように have を持っています。
したがって、これに遭遇した他の人に役立つのであれば、私の解決策はWordpressの外部の解決策でした - すべての場合に役立つわけではありませんが。
私はドメイン、たとえばme.mycompany.comを使用してから、HOSTSファイルで127.0.0.1(つまりlocalhost)に解決させます。このサイトを見る必要がある同僚のために、私は自分のドメインを自分のローカルIPで自分のHOSTSファイルに追加します。
このソリューションは、ネットワーク外のクライアントがサイトを閲覧する必要がある場合にも拡張されます。私たちは、単にme.mycompany.comが私たちのパブリックIPに解決することを確認し(通常、あなたのWebホストはこれを手助けできます、そしてあなたがあなたのインターネット接続のための静的IPを持っているならそれは間違いなく助けになります)私の社内IPへのリクエスト、簡単にWebホスティングソリューションを効果的にセットアップ(もちろん開発のみ、生産ではありません!)
これが誰かに役立つことを願っています。 HOSTSファイルは任意のプラットフォームで編集することができます。明らかに指示がWindows、Mac、およびLinuxで異なるため、必要に応じてGoogleのヘルプを利用するのが最善ですが、WindowsのファイルはC:\ Windows\System32\drivers\etc\hostsです。ファイルをメモ帳で開き、ファイルの形式に従って必要な変更を加えます(ファイルを保存するには管理者として実行する必要があります)。