문제

Rails 앱용 Phusion Passenger에서 Suburi 배포를 위한 유지 관리 페이지 설정을 얻으려고 합니다.모든 문서에는 Suburis에 다시 작성되지 않는(그렇다고 생각하지 않음) DocumentRoot ReWrite 규칙이 나와 있습니다.나는 Suburi를 가리키기 위해 ReWrite 규칙을 해킹하려고 시도했지만 제대로 작동하지 않는 것 같습니다.누구든지 작동하는 설정을 얻을 수 있었습니까?

도움이 되었습니까?

해결책

나는 똑같은 문제를 겪고 있습니다.Before Filter 방식을 사용하고 있지만 실제로는 이 방식이 싫습니다.

업데이트 및 답변

여러 하위 URI가 있는 경우 이 작업이 작동합니다. 여기서 유일하게 누락된 점은 헤더를 503으로 설정할 수 없다는 것입니다. ErrorDocument는 런타임 시 어디에 있는지 확인할 수 없는 정적 파일에 의존하기 때문입니다.

app1과 app2가 내 하위 URI 중 하나라고 가정합니다.

RewriteEngine On
RewriteCond %{REQUEST_URI} !.(css|gif|jpg|png)$
RewriteCond %{DOCUMENT_ROOT}/$1/system/maintenance.html -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^/([^/]+)(/|/.*)?$ /$1/system/maintenance.html [L]

RailsBaseURI /app1
RailsBaseURI /app2

다른 팁

그래서 나는 마침내 이것에 대해 일할 시간이 있었고 실제로 약간의 조정으로 유지 보수 페이지를 처리하는 mod_rewrite 방법을 사용할 수 있음을 발견했습니다. 하위 도메인의 경우 루트 디렉토리에 응용 프로그램의 공개 디렉토리에 대한 상징적 링크가 있습니다. 이제 공개 디렉토리에 유지 보수 파일 (또는 하위 디렉토리)이 포함 된 경우 Mod_rewrite를 연결하여 찾을 수 있습니다.

예를 들어 응용 프로그램의 이름이 지정되었다고 가정합니다 app1, 그리고 유지 보수 .html 파일은 하위 디렉토리에 저장됩니다 체계 에서 공공의 예배 규칙서. Apache Config 파일의 줄은 다음과 같습니다. Railsbaseuri /App1

RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/app1/system/maintenance.html -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ /app1/system/maintenance.html [L]

RailsBaseURI /app1
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top