2

サイトに次のようなさまざまなサブドメインを設定したいと考えていますbiology.mysite.com

現在、nginx.conf に次のものがあります。

server {
  listen 80;
  server_name biology.mysite.com;
  return 301  https://mysite.com/tags/biology$request_uri;
}

このコードは、ブラウザを にポイントするとbiology.mysite.com、 にリダイレクトされhttps://mysite.com/tags/biology、正しい生物学コンテンツが読み込まれるという点で機能します。

ただし、 URLをリダイレクトするのではなく、サブドメインをURLとして保持したい.

したがって、この要点に基づいて上記を以下のコードに置き換えましたが、効果はありません (を指すことはbiology.mysite.com単に に移動することを意味しますmysite.com):

      if ($host ~* ^www\.([a-z0-9]*)\.(mysite\.com) )
      {
          set $tagname $1;
          set $host_without_www $2;
          rewrite ^/(.*)$ $scheme://$tagname.$host_without_www/ permanent;
      }

      if ($host ~* ^([a-z0-9]+)\.(mysite\.com))
      {
          set $tagname $1;
            set $host_without_www $2;

            rewrite ^/$ /index.php/tags/index/ last;
            rewrite ^/(.+)$ /index.php/$1 last;
      }

考え?

Serverfaultではなくここに投稿した理由に注意してください。b/c 私はCodeigniterフレームワーク (独自のルーティング スキームを持つ) を使用しているため、答えには NGINX と Codeigniter の知識が必要になる場合があります。

4

1 に答える 1

1

最後のリライトは次のようになるはずです。

rewrite ^/(.+)$ /index.php/tags/$tagname$1 last;

更新: subdomain.mysite.com (URI 部分なし) などのリクエストをタグ コントローラーにリダイレクトし、サブドメイン メソッドを使用する場合は、以下の行を変更する必要があります。

rewrite ^/$ /index.php/tags/index/ last;

rewrite ^/$ /index.php/tags/$tagname/ last;

lynxluna の nginx の構成と、言及された要旨のコメントが間違っています。

于 2013-03-11T21:28:58.013 に答える