質問

私はネットやSOを調べてきましたが、この問題を回避したり、解決したりすることができません。

私たちは多数のサブドメインといくつかの専用サーバーを持っています。1 台のサーバーが問題追跡とランディング ページとして二重三重の役割を果たします。問題は、ワイルドカードのランディング ページでは正しい仮想ホスト ページに移動できない場合があることです。ワイルドカードについて調べてきましたが、特に範囲が広いようです。

私たちのシナリオは次のとおりです。

-www.askia.com が主な着陸地点です。存在しない (ワイルドカード) サブドメインは常にここに配置される必要があります。
-dev.askia.com はテクニカル サポートおよび問題のサイトです。https 用の mod_rewrite がいくつかあります。時間はかかりましたが、なんとか動作するようになったので、壊したくありません。
-www.askia.fr はフランス語のサイトです。あなたを連れて行く代わりに www.askia.com dev.askia.com に移動します。
-www.askia.co.uk あなたを連れて行くべきです www.askia.com しかし、それは行きます dev.askia.com

解決策のどこを修正すべきか完全にはわかりません。CNAMEで何かしたほうがいいでしょうか?virtualhosts 構成ファイルまたは mod_rewrite ファイル内。

役に立ちましたか?

解決

次のルールを試してください。

RewriteCond %{HTTP_HOST} ^dev\.
RewriteCond %{HTTP_HOST} !^dev\.askia\.com$
RewriteRule ^ http://dev.askia.com%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTP_HOST} !^www\.askia\.com$
RewriteCond %{HTTP_HOST} !^dev\.askia\.com$
RewriteRule ^ http://www.askia.com%{REQUEST_URI} [L,R=301]

最初のルールは、すべてのリクエストを次で始まるホストにリダイレクトします。 dev. だがしかし dev.askia.comwww.askia.com. 。2 番目のルールはリクエストを他のホストにリダイレクトします。 www.askia.com そして dev.askia.comwww.askia.com. 。したがって、すべてのリクエストは次のいずれかに送信される必要があります dev.askia.com または www.askia.com.

他のヒント

Apache で仮想ホストを使用する場合、リストにある最初のホストが常に不一致のデフォルトになります。

#default vhost
# any non-matches will land here

<VirtualHost  _default_:80>
ServerName www.askia.com:80
DocumentRoot /path/to/site

ErrorLog /path/ti/sites/logs/error_log

</VirtualHost>


# vhost #2 

<VirtualHost  _dev_Site_:443>
ServerName dev.askia.com:443
DocumentRoot /path/to/dev/site

ErrorLog /path/to/dev/sites/logs/error_log

#ssl details
SSLEngine on
SSLCipherSuite HIGH:MEDIUM
SSLCertificateFile /location/securti.crt
SSLCertificateKeyFile /location/securti.key


#any rewrite rules to apply only to this (default) domain
# force SSL for instance..
RewriteRule .* - [F]
RewriteCond   %{SERVER_PORT}  !^443$
RewriteRule (.*) https://dev.askia.com/
</VirtualHost>

#etc, etc
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top