0

我在我的网站上强制使用 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 文件夹。

谢谢,

4

1 回答 1

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}),但如果不支持,仅此而已。

于 2019-08-30T19:49:17.950 回答