위치 모듈 매칭 소개
1. "=" 접두어 지시어 매칭, 매칭이 성공하면 다른 매칭이 중단됩니다.
2. 일반 문자열 명령어는 긴 것부터 짧은 것 순으로 일치합니다. 성공적으로 일치한 위치에서 ^~를 사용하면 다른 일치가 중지됩니다(정규 일치).
3. 정규식 명령 일치를 수행하고 구성 파일의 순서를 따르고 성공하면 다른 일치를 중지합니다.
4. 세 번째 단계에서 일치가 성공하면 결과를 사용하고, 그렇지 않으면 두 번째 단계 결과를 사용합니다.
Notes
1. 일치 순서는 일반 문자열을 먼저 일치시킨 다음 정규식을 일치시키는 것입니다. 또한, 일반 문자열의 매칭 순서는 긴 것부터 짧은 것까지 구성에 있는 문자의 길이를 기준으로 하기 때문에, 일반 문자열을 사용하여 구성한 위치의 순서는 무관하며, 결국 nginx는 길이에 따라 매칭하게 됩니다. 하지만 정규식은 구성 파일에 지정된 순서대로 테스트된다는 점에 유의해야 합니다. 첫 번째로 일치하는 정규식을 찾으면 검색이 중지됩니다.
2. 일반적인 상황에서는 일반 문자열 위치가 성공적으로 일치된 후에 정규식 위치 일치가 수행됩니다. 이 동작을 변경하는 방법에는 두 가지가 있는데, 하나는 "=" 접두사를 사용하는 것입니다. 이때 엄격한 일치가 수행되고 다른 일치는 일치가 성공한 후 즉시 중지되며 동시에 요청이 처리됩니다. 다른 하나는 "^~" 접두사를 사용하는 것입니다. 일반 문자열과 함께 사용하면 경로가 일치하면 정규식을 테스트하지 않도록 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; } }
효과 미리보기
1. a1 프로젝트를 방문하세요
2.
위 내용은 Nginx에서 하나의 도메인 이름으로 여러 프로젝트에 액세스하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!