どこが間違っているのかわからないので、おそらく追加の洞察が必要です。私はSSL証明書を使用してnagiosサーバーを保護しました。 SSLを使用するには、nagiosを介したすべてのトラフィック(2人のユーザーなど)を特に要求したいと思います。
だから私は、ああ、mod_rewrite + .htaccessの書き換えルールだと思いましたよね?
そこで、DocumentRootにアクセスして、vi .htaccessを実行し(まだ存在していませんでした)、次のルールを適用しました。
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://our.server.org/$1 [R,L]
これはまったく何もしません。灘します。
Whhhyy ..
注:httpd.confのAllowOverrideallがオンになっています。また、モジュールのコメントが解除されていないことを確認しました...ただし、インストールされているmod_rewriteモジュールが見つからなかったため、別のサーバーからコピーして、modules /mod_rewrite.soに配置しました。 httpd.confファイルで有効になっているので奇妙でしたが、モジュールには存在しませんでした...
私は悪者です:(
これが私のリダイレクト非SSLVirtualHost全体です:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.example.com
ServerAlias example.com
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^/(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
LogLevel warn
CustomLog /var/log/Apache2/access.log vhost_combined
ErrorLog /var/log/Apache2/error.log
</VirtualHost>
これは、.htaccess
ではなくApache構成に属します。
主な違いは、RewriteCond
行にあります。ここで、あなたの行は%{SERVER_PORT} 80
で、私の行は%{HTTPS} !=on
です。
2つの異なる仮想ホストエントリを設定している場合は、次の操作を行う方がはるかに簡単です。
Redirect permanent / https://our.server.org/
非SSL仮想ホスト。入力されたすべてのURIをカバーすることを心配しないでください。