我在强制网站上使用SSL时遇到问题。我认为问题可能出在我的根文件夹是“网络”文件夹。
我已经在网上搜索并尝试了htaccess的几种变体,但似乎都没有用。
这是我尝试过的最新内容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Send would-be 404 requests to Craft
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
RewriteRule (.+) index.php?p=$1 [QSA,L]
</IfModule>
我的域指向我的Web文件夹,而htaccess属于该Web文件夹。
谢谢
乔
答案 0 :(得分:0)
当您接受端口80和443上的流量并使用Apache时,通常会有2个虚拟主机配置:每个端口一个。因此,一种简单的方法是将任何传入的端口80请求重定向到启用SSL / TLS的URL:
<VirtualHost *:80>
ServerName example.com
RedirectMatch permanent (.*) https://example.com$1
</VirtualHost>
如果要处理多个主机名,mod_rewrite
可能会派上用场(据我所知,RedirectMatch
不支持诸如%{HTTP_HOST}
之类的变量),但是如果不是,就这样。