我正在尝试在Phusion Passenger上为rails应用程序获取子库部署的维护页面设置。所有文档都显示了DocumentRoot ReWrite规则,这些规则没有出现(不认为应该)在suburis上重写。我试图在ReWrite规则上乱搞指向suburi,但我似乎无法让它工作。有没有人能够得到一个有效的设置?
答案 0 :(得分:0)
我遇到了完全相同的问题。 虽然我使用的是之前的过滤方式,但实际上我讨厌这种方法。
假设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
答案 1 :(得分:0)
所以我终于有时间研究这个问题,发现你实际上可以使用mod_rewrite方法处理维护页面并进行一些调整。请记住,对于子域,在根目录中创建了一个符号链接到应用程序的公共目录。现在,如果公共目录包含维护文件(或在子目录中),您可以连接mod_rewrite来查找它。
例如,假设应用程序名为 app1 , maintenance.html 文件存储在 public <的系统子目录中/ strong>目录。以下是apache配置文件中的行,无论是在 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