2016-08-24 2 views
0

하위 디렉토리에서 여러 개의 WordPress 사이트가 실행 중입니다.nginx가있는 Wordpress Multisite. 위치 내의 하위 디렉토리 일치

모든 것이 잘 작동하지만 내 nginx 구성을 단순화하려고합니다.

현재 위치를 추가 할 때 지정된 디렉토리에 대한 서버 {} 구성에 항목을 추가해야합니다.

location/{ 
     try_files $uri $uri/ /index.php?q=$args; 
    } 

    location /site1 { 
     try_files $uri $uri/ /site1/index.php?q=$args; 
    } 

    location /site2 { 
     try_files $uri $uri/ /site2/index.php?q=$args; 
    } 

    location /site2 { 
     try_files $uri $uri/ /site3/index.php?q=$args; 
    } 

    location /site4 { 
     try_files $uri $uri/ /site4/index.php?q=$args; 
    } 

하위 디렉토리와 일치하는 정규식을 추가하려고했지만 문제가있는 것 같습니다.

location /([_-0-9a-zA-Z]/?) { 
    try_files $uri $uri/ /$1index.php?q=$args; 
    } 

은 트릭을 수행하지 않습니다. 이론적으로 하위 디렉토리와 일치해야하며, nginx 설정을 변경하지 않고도 새 디렉토리를 추가 할 수 있어야합니다.

모든 포인터가 감사하겠습니다.

@jedifans는 정규식

감사를 작동하도록하는 방법을 지적했다. 그것은 모든 페이지에서 트릭을 만들었지 만, 나는/index.php를 다운로드하려고 시도한다.

location ~ \.php$ { 
    try_files $uri =404; 

    fastcgi_split_path_info ^(.+\.php)(/.+)$; 
    include fastcgi_params; 
    fastcgi_pass php70; 
    fastcgi_keep_conn on; 
} 

location ~ ^/([_\-0-9a-zA-Z]*/?) { 
    try_files /$1$uri /$1$uri/ /$1index.php?q=$args; 
} 

그러나 domain.com/site1/로 이동하면 홈페이지가 아니라 index.php가 다운로드됩니다. 누락 된 것이 무엇입니까?

+0

답변을 업데이트했습니다. – jedifans

답변

0

새로운 위치 블록에서 다음 연산자가 누락되었다고 생각합니다. ~ 연산자는 nginx에서 정규 표현식이라고 말합니다. 시도 :

location ~ ^/([_-0-9a-zA-Z]*/?) { 

몇 가지 정규식 비틀기도^그것이로 시작해야합니다 /와 * 내에서 이러한 문자 중 하나 이상과 일치하는 말을 [과]

편집 : 귀하의 질문에 업데이트 후 시도 다음 try_files 지침 :

try_files $uri $uri/ /$1/index.php?q=$args; 

은 $ URI가 일치하는 문자열없이 작동 앞에 붙어 나는 일치 쿼리와 index.php를 사이에 /에서 추가 한;

또한 index index.php;server{} 수준이어야합니다.

+0

감사. 그것은 모든 페이지에서 트릭을 만들었지 만, 나는/index.php를 다운로드하려고 시도한다. 질문을 업데이트했습니다. –

관련 문제