gpt4 book ai didi

Laravel 使用 .htaccess 重定向到 HTTPS

转载 作者:行者123 更新时间:2023-12-03 09:00:21 24 4
gpt4 key购买 nike

我使用的是 Laravel 5.5。

Laravel 有几个 .htaccess,在我的例子中,我在根目录和公共(public)文件夹内使用 .htaccess。

这段时间我一直在 root .htaccess 中使用此代码来设置公共(public)文件夹:

RewriteEngine On

RewriteRule ^(.*)$ public/$1 [L]

当我进入主页时,我的网站正在加载。之后,我想强制使用 https 重定向所有页面。因此,首先当我尝试将此代码放入根 .htaccess 中时,它不会执行任何操作。它一直用 http 加载。

RewriteEngine On

RewriteRule ^(.*)$ public/$1 [L]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

嗯,这是有道理的,因为当我设置公用文件夹时,我必须将重定向放在位于公用文件夹内的 .htaccess 内。

好的,所以我现在已经尝试过这样的操作:

根.htaccess:

RewriteEngine On

RewriteRule ^(.*)$ public/$1 [L]

公共(public).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]
</IfModule>

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

这个组合有效。它确实重定向到 https。但是,现在有一个问题。当我进入主页或从搜索结果中打开网站时,URL 如下所示:

https://mywebsite.com/public/en

当我进入其他页面时,我没有遇到与 URL 中的“公共(public)”路径相关的问题。那么,假设我想打开联系页面,URL 是 https://mywebsite.com/en/contact 。没关系。

当我进入主页时,如何避免网址中出现“公开”?

最佳答案

RewriteEngine On    
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

source

关于Laravel 使用 .htaccess 重定向到 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51084956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com