Apache サーバー上で Web サイトを実行しています。サブドメインにアクセスしようとすると、メイン ドメインにリダイレクトされます。
Apache 設定ファイルは次のとおりです。
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName azaanjobs.com
ServerAlias www.azaanjobs.com
DocumentRoot /var/www/azaanjobs/public_html
<Directory /var/www/azaanjobs/public_html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/azaanjobs.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/azaanjobs.com/privkey.pem
</VirtualHost>
</IfModule>
<VirtualHost *:8080>
ServerAdmin [email protected]
ServerName government-jobs.azaanjobs.com
ServerAlias www.government-jobs.azaanjobs.com.com
DocumentRoot /var/www/government-jobs/public_html/
<Directory /var/www/government-jobs/public_html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
これをどうすれば修正できますか?
答え1
Apacheは、ファイルシステムに表示される順序で、Webリクエストと設定されたドメインを一致させようとします。そして設定ファイル内。一般的な経験則として、サブドメインをメイン サイトの前に処理し、処理されていないトラフィックの「キャッチオール」として機能するように構成することをお勧めします。
これを念頭に置いて、構成ファイルを次のように更新することができます。
<VirtualHost *:8080>
ServerAdmin [email protected]
ServerName government-jobs.azaanjobs.com
ServerAlias www.government-jobs.azaanjobs.com
DocumentRoot /var/www/government-jobs/public_html/
<Directory /var/www/government-jobs/public_html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName azaanjobs.com
ServerAlias www.azaanjobs.com *.azaanjobs.com
DocumentRoot /var/www/azaanjobs/public_html
<Directory /var/www/azaanjobs/public_html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/azaanjobs.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/azaanjobs.com/privkey.pem
</VirtualHost>
</IfModule>
ノート:
- 更新された構成ファイルは、の誤った
www.government-jobs.azaanjobs.com.com
値をServerAlias
適切な.com
参照に置き換えます。 *.azaanjobs.com
メインドメインにエイリアスを追加し、「予期しない」トラフィックを捕捉して適切な場所にルーティングできるようにしました。- メインサイトには の設定がないようですが
*:80
、サーバーの前の何かが非SSLトラフィックをSSLを使用するように変換していない場合は問題になる可能性があります。 - サブドメインはまだポート でリッスンしているので、訪問者がブラウザでポートを指定せずにサイトを見ることができるようにするには、
8080
これを に更新する必要があります。*:80
設定ファイルを変更した後は、必ず Apache を再起動してください。
sudo service apache2 restart
これで必要なものが手に入るはずです