将根HTTP重定向到root HTTPS

时间:2016-03-14 19:46:09

标签: .htaccess http redirect https apache2

我希望如果有人访问http://domain.com,他会被重定向到https://domain.com

.htaccess文件位于/var/www/html,内容如下

<ifmodule mod_rewrite.c="">
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</ifmodule>

我的apache2.conf包含:

<Directory /var/www/html>
    Options FollowSymLinks
    AllowOverride All
    Require all granted
    SSLRequireSSL
</Directory>

但它不起作用,显示:

  

禁   您无权访问此服务器上的/。

编辑:我删除了SSLRequireSSL行并禁用了Firefox中用于保存重定向的缓存。如果我访问http://domain.com,则会将我重定向到https://domain.com。但它仍然没有为子目录做这件事。如果我访问http://domain.com/sub,我想重定向到https://domain.com

1 个答案:

答案 0 :(得分:0)

我所谈论的子目录是一个特殊的......我不认为这很重要。它是一个owncloud安装,附带一个自己的.htaccess。我的.htaccess被那个不包括我的重写规则的那个覆盖了。

我的第二个错误是,就像已经提到的那样,我有SSLRequireSSL属性集。如果这被激活,似乎任何.htaccess都被忽略了。

我还删除了像anubhava建议的.htaccess中的封闭if语句。