Apache在Redhat OpenShift上从/static/root/重写根静态文件
我正在使用部署在Redhat Openshift上的mod_wsgi+apache 重写文件放在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> 到服务器上
/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
`DocumentRoot
到项目wsgi
dirRewriterule
不应将$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>