0

私はmod_wsgi+apacheを使用してRedhatOpenshiftにデプロイされたこのプロジェクトを使用しています

リライトファイルは、/wsgi/.htaccessコンテンツが次の場所に配置されます。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/wsgi/static/root/%{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ static/root/$1 [L]
</IfModule>

ご覧のとおり、書き直したい

http://mysite/favicon.ico

サーバー上のこの場所へ

wsgi/static/root/favicon.ico

しかし、私の設定はまったく機能しません。私が試したすべての静的パスは、このルールによってキャッチされません。straceRedhat Openshiftにアクセスできないため、何が悪かったのかわかりません。

何か助けはありますか?TIA。

4

2 に答える 2

0

そして、rewriteBASEを指定するのはどうですか?

于 2013-02-05T10:18:09.350 に答える
0

OK私はなんとかしてstrace -fp $APACHE_PID、その方法を見つけました:

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

いくつかの試行錯誤があります。

  1. REQUEST_FILENAMEローカルファイルパスであることが判明しました。代わりに`を使用してREQUEST_URIください

  2. DocumentRootプロジェクトwsgiディレクトリに定義されたOpenShift

  3. にマップされるため、正規表現の一致には使用しRewriteruleないでください。mod_wsgiはそれで面白いエイリアスを作ったと思います。$1static/root/application/file_path

于 2013-02-06T07:54:31.863 に答える