我希望如果有人访问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
答案 0 :(得分:0)
我所谈论的子目录是一个特殊的......我不认为这很重要。它是一个owncloud安装,附带一个自己的.htaccess。我的.htaccess被那个不包括我的重写规则的那个覆盖了。
我的第二个错误是,就像已经提到的那样,我有SSLRequireSSL
属性集。如果这被激活,似乎任何.htaccess都被忽略了。
我还删除了像anubhava建议的.htaccess中的封闭if语句。