我在我的网站上强制使用 SSL 时遇到问题。我认为问题可能出在我的根文件夹是我的“web”文件夹。
我在网上搜索并尝试了几种 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 文件夹。
谢谢,
乔
最佳答案
当您接受端口 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}
), 但如果不是,那就是它。
关于ssl - Craft CMS SSL 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57497457/