今までローカルでvagrantを開発環境を作る際には、トップレベルドメインは.dev
で統一していた。
というのも、laravel環境を作る時に使うhomesteadや、wordpress環境を作る時に使うVCCWでデフォトで設定れていいたトップレベルドメインは.dev
でした。
しかし以下の原因でドップレベルドメインが.dev
のドメインは全てhttpsにリダイレクトしてしまうようになってしまった。
.devや.appがgTLDとしてGoogleが購入をした
Google Chromeで.devなどの開発DomainがHTTPSに変更される。
そこでローカル環境が.devのサイトを全て.testに変更することにした。
wordpressの場合はDBにドメイン保存されているので、DBの値も変更しなくてはならなく、ちょっとめんどくかったので修正する方法を説明します。
.dev から.testにドメインを変更する方法
vagrant up
vagrant ssh
cd /vagrant
wp search-replace 'example.dev' 'example.test'
マルチサイトの場合
wp search-replace --network 'example.dev' 'example.test'
これを実行することで、マルチサイトのドメインも変更されます。
マルチサイトのドメインが変更されないとブラウザで見たときに404エラーが出てしまいます。
wp search-replaceでエラーが出た場合
Error: Site 'example.dev/' not found. Verify DOMAIN_CURRENT_SITE matches an existing site or use `--url=<url>` to override.
このようなエラーが出る場合はwp-config.phpのDOMAIN_CURRENT_SITE
の値を変更前のドメインと合わせる必要がある。
ex.
define( 'DOMAIN_CURRENT_SITE', 'example.test' );
マルチサイトの方にアクセスしても表示されない場合
chromeで見た場合のエラー内容
このサイトにアクセスできません
tech.weblighten.test のサーバーの IP アドレスが見つかりませんでした。
次をお試しください:
接続を確認する
プロキシ、ファイアウォール、DNS の設定を確認する
ERR_NAME_NOT_RESOLVED
このように表示された場合は、hostsの設定にサブドメインのアドレスも追加してください。
例えばメインのドメインが
192.168.33.10 example.test
とかであればIPはそのままに
192.168.33.10 sub.example.test
とかってすれば良いです。
なんかマルチサイトでもこの対応が必要な場合とそうでない場合があってなんでなのか理由が分からないです。
ご存知の方いたら教えてください。
参考サイト
* ゼロからできるWordPress開発〜VCCWでデプロイ編〜 | MAKING | 株式会社スタジオ・アルカナ
* WP-CLIを使ってWordPressのマルチサイトのURLを一括置換する方法