2012-03-06 2 views
2

내가 PHP-FPM 다음 URL을 처리 할 nginx를 강제하기 위해 노력하고있어 :nginx를 여러 위치 정규식

  • .PHP
  • /sitemap.xml
  • 로 끝나는 모든 URL
  • /api/api.js

나는 다음과 같은 정규식 노력하고있어,하지만이 작동하지 않습니다

location ^~ ^((.*\.php)|/sitemap.xml)+$ { 

답변

2

시도 ...

location ~ (\.php|sitemap\.xml|api/api\.js)$ { 
    ... 
} 
2

당신은 정말 PHP로 물건을 보낼 Nginx에 강제로 시도 할 수 없습니다. 그것은 일종의 '잘못된 길'입니다. Nginx는 파일이 존재하는지 확인하고, 그렇지 않으면 패스한다. * .php는 PHP에 의해 처리되어야하므로 .php를 넘겨야한다는 것을 이해합니다. 당신은 Nginx에 위치 블록의 작품은 장기적으로 매우 고통스러운 될 것입니다 방법을 이해하지 않는 경우 위치에 대한 정규 표현식을 유지하기 위해 노력

location/{ 
    try_files $uri /index.php; 
} 

location ~ \.php { 
    fastcgi_pass unix:/tmp/php-fpm.socket; 
} 

location = /api/api.js { 
    fastcgi_pass unix:/tmp/php-fpm.socket; 
} 

location = /sitemap.xml { 
    fastcgi_pass unix:/tmp/php-fpm.socket; 
} 

.

http://wiki.nginx.org/HttpCoreModule#location