转移80至443在Nagios的困境

我可能只是需要一些额外的见解,因为我没有看到我要去哪里错了。 我使用SSL证书来保护我们的nagios服务器。 我们想特别要求所有通过nagios的stream量(如2个用户,lol)使用SSL。

所以我想,哦,mod_rewrite +在.htaccess重写规则,对不对?

所以我进入了DocumentRoot并做了一个vi .htaccess(一个还不存在),然后我遵循下面的规则:

RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://our.server.org/$1 [R,L] 

这绝对没有。 纳达

Whhhyy ..

注意:httpd.conf中的AllowOverride全部打开。 另外,我validation了这个模块没有被注释掉,但是注意,我找不到安装的mod_rewrite模块,所以我从另一个服务器上复制了它,并把它放在modules / mod_rewrite.so中。 这很奇怪,因为它在httpd.conf文件中启用,但是在模块中不存在…

我是坏人:(

这是我的redirectnon-ssl VirtualHost的全部内容:

 <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> 

这属于Apacheconfiguration,而不是在.htaccess

主要区别在于我们的RewriteCond行,其中您的是%{SERVER_PORT} 80 ,我的是%{HTTPS} !=on

如果您有两个不同的虚拟主机条目设置,那么执行以下步骤会更容易。

 Redirect permanent / https://our.server.org/ 

在非ssl的vhost中。 不要担心会覆盖所有进入的uris。