0

私はこれで立ち往生しています.Webサーバー分野での私のスキルは貧弱です...

mod_wsgi と mod_rewrite で実行されている Apache2 のプロキシとして機能する Nginx があります。私がやりたいことは、すべての URL を www.example.com から example.com に書き換えることです。つまり、サービスを提供する前に、各 URL リクエストから www の部分を取り除きます。これは、さまざまな conf ファイルのレイアウトです。

=== /etc/nginx/sites-enabled/example.com ===:

http://dpaste.com/82638/

=== /etc/apache2/sites-enabled/example.com ===:

http://dpaste.com/hold/82645/

=== /home/nabuco/public_html/example.com/example/apache/example.wsgi ===:

http://dpaste.com/82643/

私の古いセットアップでは、mod_python を実行している Apache2 があり、次のように .htaccess ファイルを配置するだけで済みました。

Options -Indexes
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

それは完璧に機能しました。

しかし、同じ .htaccess ファイルを /home/nabuco/public_html/nomadblue.com/nomadblue/apache/.htaccess に入れてみました。http://example.com/http://example.com/whateverのように、先頭の www を付けずにリクエストをキャストすると、すべてうまくいきます。ただし、 http://www.example.com/の www バージョンを試すと、次の場所にリダイレクトされます。

http://example.com/example.wsgi/

代わりにnginxから書き換えルールを実行する必要がありますか? 私もそれを試して、これをnginx confファイルに追加しました:

rewrite ^/(.*) http://example.com/$1 permanent;

しかし今、私はFirefoxが「循環ループ」と呼んでいるものを手に入れています...

では、誰がこれを (些細なことだと思いますが) 取り上げることができますか?

前もって感謝します、

ヘクター

4

2 に答える 2

2

一番簡単なのはnginxで書き直すことです。その書き換えルールを、www.example.com にバインドされた専用の「サーバー」に配置します。

サーバー {
  80を聞いてください。
  server_name www.example.com;
  rewrute ^/(.*) http://example.com/$1 永久;
}
于 2009-08-20T12:26:00.663 に答える
1

さて、循環ループを回避するための解決策を見つけました... servernginx構成ファイルに2つのセクションを作成します。1つはwww.example.com(rzabによって提案された書き換えルールがあります)用で、もう1つはexample.com用です。 、残りのすべてのディレクティブが含まれています。

于 2009-08-23T08:43:33.730 に答える