質問

次のコードは、私に内部サーバエラーを与え、私は理由を判断することはできません。

RewriteEngine On
SetEnv APPLICATION production
RewriteCond %{ENV:APPLICATION} =production
RewriteRule ^.*$ - [S=1] 
RewriteRule ^(.*)$ html/$1.html

は、それが何をすべきすべてのURLを取るです。

/test

とそれが参照しているオン

/html/test.html

舞台裏ではなく、環境がするSetEnvで設定されている生産、ある場合にのみ、

正しい解決策はありません

他のヒント

たぶん私のmod書き換えが錆びですが、私はそれを理解していれば、それはあなたが何を言っているかの反対をやっているようです。アプリケーションが生産されている場合、それはURLを書き換えないものとします(そして、それは希望のルールをスキップします)。でも、私は内部サーバーエラーを引き起こす何かを見ていないよ。

あなたが言っている何をすべきか、あなたのようなものが必要になります:

RewriteEngine On
SetEnv APPLICATION production
RewriteCond %{ENV:APPLICATION} !=production
RewriteRule ^.*$ - [S=1] 
RewriteRule ^(.*)$ html/$1.html

問題が解決しない場合、内部サーバーエラー500のための最高の情報を持っているApacheのエラーログを、確認してください。

どちらかとトッド・ガードナーのようにそれを行うか、冗長なルールを削除し、二番目のルールに条件を結合します:

RewriteEngine On
RewriteCond %{ENV:APPLICATION} =production
RewriteRule ^(.*)$ html/$1.html

また、私は再帰を避けるために、代わりにこのルールを使用すると思います:

RewriteCond %{ENV:APPLICATION} =production
RewriteRule !^html/ html%{REQUEST_URI}.html

便利なエラーを取得するにはモッズ書き換え、ロギングをオンにします。

RewriteLog rewrite_log
ReWriteLogLevel 2

冗長性のためのログレベルを調整します。

あなたが正しくそれを比較するために、文字列の前後に引用符を配置する必要があります。

RewriteCond %{ENV:APPLICATION} !="production"
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top