![Passenger:Rails 应用程序的非默认页面缓存目录的 mod_rewrite 规则](https://linux22.com/image/506018/Passenger%EF%BC%9ARails%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E9%9D%9E%E9%BB%98%E8%AE%A4%E9%A1%B5%E9%9D%A2%E7%BC%93%E5%AD%98%E7%9B%AE%E5%BD%95%E7%9A%84%20mod_rewrite%20%E8%A7%84%E5%88%99.png)
是否有人有一些有效的 Apache mod_rewrite 规则,可让 Phusion Passenger (mod_rails) 在 Rails 应用程序内使用非默认位置作为页面缓存?我希望缓存文件进入,/public/cache
而不是默认的/public
。
答案1
我找到了答案这篇博文:
RailsAllowModRewrite On
RewriteEngine On
RewriteCond %{THE_REQUEST} ^(GET|HEAD)
RewriteCond %{REQUEST_URI} ^/([^.]+)$
RewriteCond %{DOCUMENT_ROOT}/cache/%1.html -f
RewriteRule ^/[^.]+$ /cache/%1.html [QSA,L]
RewriteCond %{THE_REQUEST} ^(GET|HEAD)
RewriteCond %{DOCUMENT_ROOT}/cache/index.html -f
RewriteRule ^/$ /cache/index.html [QSA,L]
答案2
RailsAllowModRewrite 的答案不起作用,因为在新版本中 RailsAllowModRewrite 什么也不做,但是乘客与 mod_rewrite 的交互似乎被打破了。