Apache在Redhat OpenShift上从/static/root/重写根静态文件

Apache在Redhat OpenShift上从/static/root/重写根静态文件,apache,mod-rewrite,openshift,Apache,Mod Rewrite,Openshift,我正在使用部署在Redhat Openshift上的mod_wsgi+apache 重写文件放在/wsgi/.htaccess上,内容如下: <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{DOCUMENT_ROOT}/wsgi/static/root/%{REQUEST_FILENAME} -f RewriteRule ^(.*)$ static/root/$1 [L] </IfModule> 到服务器上

我正在使用部署在Redhat Openshift上的mod_wsgi+apache

重写文件放在
/wsgi/.htaccess
上,内容如下:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/wsgi/static/root/%{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ static/root/$1 [L]
</IfModule>
到服务器上的此位置

wsgi/static/root/favicon.ico
然而,我的配置根本不起作用。我尝试的每一条静态路径都不会被这个规则捕获。因为我不能在Redhat Openshift上使用
strace
apache,所以我无法判断出哪里出了问题


有什么帮助吗?TIA.

那么指定重写基呢?

好的,我设法
strace-fp$APACHE\u PID
并找到了如何:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{DOCUMENT_ROOT}/static/root%{REQUEST_URI} -f
RewriteRule . static/root%{REQUEST_URI} [L]
</IfModule>

重新启动发动机
重写基/
重写cond%{DOCUMENT_ROOT}/static/ROOT%{REQUEST_URI}-f
重写规则。静态/根%{REQUEST_URI}[L]
有几次尝试和错误

  • REQUEST\u FILENAME
    原来是本地文件路径。因此,请改用
    请求URI
    `

  • OpenShift定义了
    DocumentRoot
    到项目
    wsgi
    dir

  • Rewriterule
    不应将
    $1
    用于正则表达式匹配,因为它将映射到
    静态/根/应用程序/文件路径
    。我猜mod_wsgi用这个做了一些有趣的别名

  • <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{DOCUMENT_ROOT}/static/root%{REQUEST_URI} -f
    RewriteRule . static/root%{REQUEST_URI} [L]
    </IfModule>