サーバー上で唯一のドメインとして実行されているアプリの新しいドメイン名を取得しています。
したがって、この質問では、olddomain.co.ukをnewdomain.comに移動するとします。これらのドメインは両方とも最初の数か月は稼働し続けます。自分で設定したわけではありませんが、両方とも同じIPアドレスに対して2つの別々のレコードとして記録されていると確信しています。数週間、新しいドメインへのすべてのリクエストを古いドメインに書き換えてもらいたいのですが、それから数か月間交換します。
だから私はこれを行うことができます(httpd.confの下部にあります)
<If "%{HTTP_HOST} == 'newdomain.com'">
RewriteEngine On
RewriteRule ^.*$ https://www.google.co.uk [L]
</If>
これは、要件ではないことを除いて、完全に機能します。olddomain.co.ukがアプリに移動し、newdomain.comがgoogleにリダイレクトされます。
だから私の次のステップは私が使いたいルールを入れることです
<If "%{HTTP_HOST} == 'newdomain.com'">
RewriteEngine On
RewriteRule "^/?(.*)" "http://oldmain.co.uk%{REQUEST_URI}"
</If>
これは一般的なエラーを返します(エラーを記録するのを忘れて、それを再現する前にしばらく待つ必要があります-それはライブサーバーです-必要に応じて編集して後で追加します)。
UAT環境がありますが、残念ながらドメインが登録されておらず、IPアドレスを使用してアクセスされます。私は組織レベルのDNSマッピングを設定し、これを使用していくつかのテストを行いました。それがライブで失敗するまで、私はこれを議論したと思っていました。
だからUATで私はこのようなものを持っていました
<If "%{HTTP_HOST} == 'uatserver'">
RewriteEngine On
RewriteRule "^/?(.*)" "http://[ipaddress]%{REQUEST_URI}"
</If>
そしてこれはうまくいきました。
uatサーバーにリダイレクトするようにライブサーバーを変更すると、これは機能します...
<If "%{HTTP_HOST} == 'newdomain.com'">
RewriteEngine On
RewriteRule "^/?(.*)" "http://[uat-ip-address]%{REQUEST_URI}"
</If>
したがって、構文に問題はないようです。
そうです、ライブサーバー上の問題は、それが同じボックスにリダイレクトして行うことであること(?)
UATサーバーとLiveサーバーで確認できる唯一の本当の違いは、httpd-vhosts.confファイルにあります。これはライブです
NameVirtualHost olddomain.co.uk
NameVirtualHost newdomain.com
NameVirtualHost [ip address]
<VirtualHost [ip address] olddomain.co.uk newdomain.com localhost:80>
serveralias [ip address]
serveralias olddomain.co.uk
serveralias newdomain.com
serveralias localhost
DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">
Options +FollowSymLinks
AllowOverride none
</Directory>
#JkOptions +ForwardURICompatUnparsed
ProxyRequests off
JkMount /* ajp13
</VirtualHost>
誰かが私にポインターを提供できますか?私はかなりの数の同様の質問を閲覧しましたが、決定的なものは何も見つかりませんでした。次にサーバーをダウンさせる機会があったときは、ハッキングするのではなく、何か試してみたいと思っています!?
olddomain.com-> newdomain.com から必要な場合
これらの設定はapache.confに残します
NameVirtualHost *:80
<VirtualHost *:80>
ServerName olddomain.com
ServerAlias newdomain.com
RewriteEngine on
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*) http://www.newdomain.com%{REQUEST_URI} [R=302,NC]
newdomain.com-> olddomain.comから必要な場合
これらの設定はapache.confに残します
NameVirtualHost *:80
<VirtualHost *:80>
ServerName newdomain.com
ServerAlias olddomain.com
RewriteEngine on
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*) http://www.olddomain.com%{REQUEST_URI} [R=302,NC]
また、DNS設定でA Record
は、新しいドメインにはで十分です。あなたがしなければならないのはあなたのサーバーにそれを向けることです。
これらの変更を行う前に、必ず現在の構成をバックアップしてください。あなたが生きているので、私はあなたのためにこれをテストすることができませんでしたが、それはうまくいくはずです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加