Nginx에서 WordPress 사이트를 실행 중입니다. 내 구성에는 다음과 같은 위치 블록이 있습니다.
location / {
try_files $uri $uri/ /index.php?$args;
}
내가하고 싶은 것은 정적 컨텐츠로 가득 찬 특별한 디렉토리를 가지고 있다는 것입니다. URL이 정적 디렉토리의 파일과 일치하면 Wordpress 내용 대신 제공되기를 원합니다.
파일 이름을 미리 알 수 없습니다.
위치 블록을로 변경하려고했습니다.
location / {
try_files /static/$uri /static/$uri/ $uri $uri/ /index.php?$args;
}
이것은 대부분 내가 원하는 것을 수행하지만 ( static
아래의 디렉토리 인 한 $document_root
) 방문자가 보는 URL을 다시 작성합니다. 가능하면 피하고 싶습니다. 예를 들어로 https://example.com/catalog.php
리디렉션 하지 마십시오 https://example.com/static/catalog.php
. Nginx가 방문자 모르게 정적 콘텐츠를 제공하기를 원합니다.
특히 명확하지 않았을 수도 있습니다.
내 WordPress 내용이 있으며 /srv/www/mysite/html
내 Nginx 구성은 대략 다음과 같습니다.
server {
root /srv/www/mysite/html;
location / {
try_files $uri $uri/ /index.php?$args;
}
}
/home/dave/static
임의의 내용 이 들어있는 다른 폴더 가 있습니다. 라는 파일이 있다고 가정 해보십시오 catalog.html
. 방문자가 방문 https://example.com/catalog.html
하면 콘텐츠를 /home/dave/static/catalog.html
제공 하고 싶습니다 . 일치하는 정적 파일이 없으면 WordPress 내용으로 대체하고 싶습니다.
그 동안 내가 시도한 다른 것이 있습니다.
server {
root /srv/www/mysite/html;
location / {
root /home/dave/static;
try_files $uri $uri/ @fallback;
}
location @fallback {
try_files $uri $uri/ /index.php?$args;
}
}
이 구성이 작동하지 않습니다. 정적 콘텐츠를 인식하지 못하고 WordPress 콘텐츠 만 제공합니다.
/
잘못된 위치에들. 시도 :try_files /static$uri $uri $uri/ /index.php?$args;
static
가 잘못되었다는 것이 맞습니다 . 불행하게도이 설정은 방문자를 물리적으로 서비스를 제공하지 않고 / static 디렉토리로 물리적으로 리디렉션합니다.
location ~ \.php$
블록이 있지만 static
폴더 의 파일과 충돌 할 수있는 다른 정규식 위치가 있습니다 .
location /static { stuff here; }
다음과location / { stuff here; }