web-dev-qa-db-ja.com

チェロキーで別の仮想サーバーを使用せずに、WWWを非WWWにリダイレクトする

Cherokee Webサーバーを使用していますが、リクエストをリダイレクトするための個別の仮想サーバーを作成せずに、www.domain.comからdomain.comにすべてのリクエストをリダイレクトしたいと考えています。

_Host Match_セクションで、ワイルドカードモードで承認済みドメインとしてwww.domain.comとdomain.comを設定しました。ここで、次の設定でRedirectionハンドラーを使用してルールを作成する必要があると想定します。

_Type: External
Regular Expression: ^/(.*)$
Substitution: http://domain.com/$1
_

問題は、どのタイプのルールを選択するかということです。この設定でリダイレクトルールを試しました:^www.domain.com/(.*)$

編集:答え

(ServerFaultはまだ質問に答えさせてくれないので)

ついにそれを理解した。 Headerタイプのルールを作成し、Hostヘッダーを選択します。次に、次の正規表現に一致します:_^www.domain.com$_。正規表現:^/(.*)$および置換:_http://domain.com/$1_を使用して、ハンドラーを外部リダイレクトに設定します。

グレースフルリスタートを実行すると、すべての設定が完了します。

2
psp

ついにそれを理解した。 Headerタイプのルールを作成し、Hostヘッダーを選択します。次に、次の正規表現に一致します:_^www.domain.com$_。正規表現:^/(.*)$および置換:_http://domain.com/$1_を使用して、ハンドラーを外部リダイレクトに設定します。

グレースフルリスタートを実行すると、すべての設定が完了します。

1
psp

私は何か他のものを探していましたが、他の検索者がいくつかのアドバイスを使用できることに気づきました。

[〜#〜]ただし[〜#〜]ブラウザのアドレスバーを実際に変更したい場合(つまり、「www.domain.tld」から「domain.tld」に変更したい場合)、帯域幅を浪費しますまた、読み込みに時間がかかる場合は、ドメインネームサービス(DNS)で設定していないホスト(「www」など)に対して構成できる「一致」設定に従って、チェロキーにサービスを継続させる必要があります。ベアドメイン(domain.tld)のCNAMEリソースレコード(RR)として。

明らかに、DNSを使用してホストをベアドメインにリダイレクトする方がはるかに安価です[つまり、DNS RRを作成します: 'Host-name IN CNAMEdomain.tld。' 「。」に注意してください(ドット)「。tld」の後]。他の誰かのネームサーバーを使用する制約のある共有ホスティング環境にいる場合でも、DNSの「CNAME」RRを設定する機能を常に利用できます。

したがって、これにより、なぜホストを使用しているのかという疑問が生じます。すべてのリンクをHost-name.domain.tldではなくdomain.tldに移動するだけで、あいまいさを排除できます。

あなたが検索エンジン最適化(SEO)について心配しているなら:そうしないでください。検索エンジンの「ボット」は、「domain.tld」とDNSから始まります。また、サーバーがリダイレクトを提供する場合、彼らはそれを「良い」ものとは見なしません。したがって、リンクを整理し、DNSで正しいことを行うと、はるかにうまくいくでしょう!

1
johann