Apache2는 찾을 수 없는 경우 다른 폴더에서 파일을 검색합니다.

Apache2는 찾을 수 없는 경우 다른 폴더에서 파일을 검색합니다.

애플리케이션 재작성 작업을 하는 동안 새 파일을 찾을 수 없을 때를 대비해 기존 앱 웹 루트 파일을 유지하고 싶습니다.

2가지 애플리케이션이 있습니다:

<VirtualHost *:80>
    ServerName legacy.dev
    DocumentRoot /www/legacy/webroot
</VirtualHost>
<VirtualHost *:80>
    ServerName new.dev
    DocumentRoot /www/new/webroot
</VirtualHost>

DocumentRoot에 있는 파일을 검색하도록 new.dev VirtualHost를 설정하려면 어떻게 해야 합니까? 하지만 파일을 찾을 수 없으면 Legacy.dev DocumentRoot에서 파일을 검색할 수 있습니까?

답변1

처럼 들린다Nginx의 try_files에 해당하는 Apache는 무엇입니까?당신이 원하는 것을 할 것입니다.

RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f RewriteRule ^/(.*)$ balancer://app_cluster%{REQUEST_URI} [P,QSA,L]

파일을 찾으려고 시도하고 찾지 못하면 해당 파일을 Apache 프록시에 전달합니다. Apache: 다른 디렉토리에서 누락된 이미지를 찾기 위해 mod-rewrite프록시 없이 유사한 작업을 수행하기 위해 mod_rewrite를 사용하는 유사한 예를 보여줍니다. 보시다시피, 유사 RewriteCond하지만 다소 다른 방식을 사용하므로 RewriteRule작업하기가 더 쉽습니다.

첫 번째 참조 답변은 nginx를 try-filesApache로 해킹하려고 시도하는 것이므로 이 경우 nginx를 직접 사용하는 것이 더 좋을 것입니다. try_files는 어떻게 작동하나요?그것이 당신에게 도움이 된다면 더 나은 아이디어를 줄 것입니다.

관련 정보