2012-03-28 12 views
0

ApacheをWebサーバーとして使用してURLを書き換えています。パターンは単純です:Apache RewriteCondが完全に機能していない

if request starts with "/services" then 
    rewrite is off 
else 
    using ssl. replaces http with https 

だから私は自分のソリューションがあります。

RewriteEngine On 
RewriteCond %{REQUEST_URI} !^/services.* [NC] 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

をまた、私は1つが、SSLアクセスログであり、他はどれもSSLアクセスログで、URLでアクセスログを分離します。私が見たいのはなしのSSLアクセスログで要求が含まれているだけで、私はなしSSLアクセスログにいくつかの要求を発見した.Butサービスを開始し、これを好き:

10.75.6.22 - - [28/Mar/2012:08:38:08 +0800] "GET /validate/showValidateProgress.jsp? 
10.186.96.70 - - [28/Mar/2012:09:01:48 +0800] "GET /vjsp/confirm.jsp? 

要求が/サービスが、残念ながら私のSSLを使用しなければならないと起動しません設定ファイルが動作していません。しかし、依然としていくつかの要求がsslアクセスログにあります。これは、要求の一部が私の期待を満足させることを意味します。 私はログについて非常に混乱していて、私の設定に何が間違っているのか分かりません。ありがとう。動作するはず

答えて

0

# if request starts with "/services" then rewrite is off 
RewriteRule ^/services - [QSA,NC,L] 
# using ssl. replaces http with https 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 
+0

まだ働いていない、私は理由を知りません。 – huangli

+0

ログを比較する私は、noneアクセスログのすべてのリクエストにhttpコード302があることを理解しています!つまり、最初の要求はnone sslであり、httpsにリダイレクトされます。あなたと私の両方の設定が正しいです!ありがとうオリビエ! – huangli

関連する問題