GoDaddyアカウントを所有しており、管理者の指示に従って、メインサイトのプレースホルダーとしてリダイレクトを使用しています。彼らは、「dev」と「staging」がアプリケーションにアクセスすることを望んでいますが、他のすべてはリダイレクトに行きます。
「ステージング」サブドメインを介してアプリケーションにアクセスできるようにします。私はこのことを機能させることができないようです。 GoDaddyリダイレクト、DNSゾーンファイル、サイト対応(サーバー上)、およびhostsファイルの間で、私は行き詰まっています。 Ubuntu 14.04.3 LTSを実行しているAWS AMIで実行しています。
これが私がやろうとしていることです(無実の人を保護するためにテキストと数字が変更されています):
入力する場合:
http://dev.phishmenot.com
->サーバーの開発ディレクトリにあるサイト。
http://staging.phismenot.com
->サーバー上のステージングディレクトリ内のサイト。
http://[anything else].phishmenot.com
->(リダイレクト301:KickoffLabsウェブサイト)
構成は次のとおりです。
次に、実際のゾーンファイルがあります。
私のホストファイル(AWSサーバー上):
127.0.0.1 localhost
67.4.67.45 dev.phishmenot.com
67.4.67.45 staging.phishmenot.com
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
次に、サイト有効ディレクトリに適切に配置されたシンボリックリンクを使用して、サイト利用可能ディレクトリにあるstaging.phishmenot.com.confファイルを示します。
<VirtualHost staging.phishmenot.com:80>
ServerAdmin [email protected]
ServerName phishmenot.com
ServerAlias staging.phishmenot.com
DocumentRoot /var/www/staging/current
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>
KickoffLabsを使用してサイトのプロモーションを行っており、セットアップの指示に従いました。奇妙なのは、私がDID開発サイトを機能させることです。どうやったか思い出せません。動作するまで物事を微調整し続け、その後開発に戻らなければならなかったと思います。
私は間違いなくUnixやサーバーの専門家ではありません。知識のあるアマチュアと呼んでください。これを標準的な方法で構成して、自分が何をしているのかを知っている人がいれば、リモートで認識できるようにします。
更新:
あなたが提案した変更を試みましたが、www.phishmenot.comサイトOR www.kickofflabs.comサイトにアクセスできなくなりました。これが私の.htaccess
ファイルです。実際の名前と住所は編集されましたが、この質問と一致しています:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_Host} !^(dev|staging).phishmenot.com$
RewriteRule ^(.*) http://proxy.kickofflabs.com/$1 [QSA,L,R=301]
# Hide the application and system directories by redirecting the request to index.php
RewriteRule ^(application|system|\.svn) index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
Header set Expires "Thu, 19 Nov 1981 08:52:00 GM"
Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
Header set Pragma "no-cache"
提案に従って、GoDaddyからリダイレクトを削除し、できれば.htaccess file
をすべて処理しました。また、キックオフラボプロキシへの「www」のCNAMEレコードも削除しました。これで、ステージングはwww.phishmenot.comにリダイレクトされ、サーバーはアドレス指定されなくなりました。 aレコードの@は、AまたはCNAMEレコードとしてリストされていないものをすべてキャッチするはずだと考えました。注:追加のmod_rewriteコマンドは、アプリケーションフレームワークCodeIgniterをサポートしています。矛盾がある場合は、調整できます。
OKセットアップを見てみると、単純なものであるhtaccessリダイレクトが必要です。
www.example.com
をホストするメインサーバーである場合、レコードエントリ「@
」をAWSのIPとして使用すると、non-www
and www
は意図したとおりに機能します。.htaccess
つまり/var/www/dev/.htaccess
という名前を付けます。両方の.htaccessファイルに次のようなものを入力します。
RewriteCond %{HTTP_Host} !^(dev|staging|www).example.com$
RewriteRule ^(.*) http://www.example.com/$1 [QSA,L,R=301]
上記のコードは、dev、staging、www以外のすべてのサブドメインをメインサイトにリダイレクトします。また、メインサイトでhtaccessを使用することをお勧めします。これにより、www以外からwwwに適切にリダイレクトできるため、@
を使用してAレコードについて言及した理由は、htaccessファイルは3つのサイトすべてで機能するはずです。
リダイレクトサーバー側の管理はDNSで行うよりもはるかにうまく機能します。必要に応じて技術的な書き換えを行うことができることを気にしないでください。一般的に、上司の男性との議論に参加する場合、サーバー側をリダイレクトすることは業界標準です。
編集。
上記のサブドメイン以外の別のドメインに完全にリダイレクトする場合は、ステージングサイトと開発サイトの両方で.htaccessリダイレクトを使用することを選択する必要があります。両方のサイトのルートに空の.htaccessを作成し、ファイルに以下を入力します。
RewriteCond %{HTTP_Host} !^(dev|staging).siteA.com$
RewriteRule ^(.*) http://www.siteB.com/$1 [QSA,L,R=301]
繰り返しますが、サーバーの書き換えが有効になっていることを確認してください。そうしないと、テスト時に何も起こりません。