ロケーションモジュールのマッチング導入
1.”= プレフィックスディレクティブマッチング。マッチングが成功すると、他のマッチングは停止されます。
2. 通常の文字列命令は最長から最短の順にマッチングされ、マッチングに成功した箇所が ^~ を使用している場合、他のマッチングは停止されます (通常のマッチング)。
3. 設定ファイルの順序で正規表現の指示を照合し、成功すると他の照合を停止します。
4. 3 番目のステップで一致が成功した場合はその結果を使用し、それ以外の場合は 2 番目のステップの結果を使用します。
注意事項
1. 一致順序は、最初に通常の文字列と一致し、次に正規表現と一致します。また、通常の文字列のマッチング順序は、構成内の文字の長さの長いものから短いものに基づいており、通常の文字列を使用して構成された場所の順序は無関係であることを意味します。ただし、正規表現は構成ファイルで指定された順序でテストされることに注意してください。最初に一致する正規表現が見つかると、検索が停止します。
2. 通常の状況では、通常の文字列の位置が正常に一致した後に、正規表現による位置の一致が実行されます。この動作を変更するには 2 つの方法があり、1 つは "= プレフィックスを使用する方法です。このとき、厳密な照合が実行され、照合が成功した直後に他の照合が停止され、同時にリクエストが処理されます。もう 1 つは、「^~」プレフィックスを使用することです。これを正規の文字列とともに使用すると、パスが一致する場合に正規表現をテストしないように nginx に指示します。
location = /uri
= は完全一致で始まり、完全に一致する場合にのみ有効になります。
location ^~ /uri#^~ プレフィックス マッチングは、URL パスの先頭と正規表現の前で実行されます。
location ~ pattern~ は、大文字と小文字を区別する正規の一致を示します。
location ~* pattern~* は、大文字と小文字を区別しない正規の一致を示します。
location /uri修飾子を付けない場合は、通常のマッチングの後にプレフィックス マッチングを意味します。
location /ユニバーサル マッチング。他の場所と一致しないリクエストはすべてマッチングされます。これはスイッチのデフォルトと同等です。
設定例
server { listen 80; server_name test.com; index index.html index.htm index.php; charset koi8-r; access_log /var/log/nginx/host.access.log main; # 域名+项目1名称 location ^~ /a1/ { alias /usr/share/nginx/html/a1/public/; } # 域名+项目2名称 location ^~ /a2/ { alias /usr/share/nginx/html/a2/public/; } error_page 404 /404.html; # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html/500.html; } #pass the php scripts to fastcgi server listening on 127.0.0.1:9000 location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param script_filename /scripts$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } }
効果のプレビュー
#
以上がNginx で 1 つのドメイン名で複数のプロジェクトにアクセスする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。