使用 .htaccess 强制使用 HTTPS 会导致 Laravel 中的重定向循环

使用 .htaccess 强制使用 HTTPS 会导致 Laravel 中的重定向循环

我正在使用 Laravel 6.16 开发 Web 应用。我已为域设置了 SSL 证书,现在需要强制所有请求使用 HTTPS 协议。

默认的 .htaccess 文件具有以下内容

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews -Indexes
</IfModule>

RewriteEngine On

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

我尝试将其添加到默认重定向之上,并将默认值替换为:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

但这会导致重定向循环,我相信默认情况下 larvel 需要将 URL 重写为“漂亮的”URL。

相关内容