使用MVC和HTTPS重定向

问题描述 投票:0回答:1

我创建了一个遵循CodeCourse-youtube系列https://www.youtube.com/watch?v=OsCTzGASImQ的MVC结构的网站。

该文件夹是结构:

enter image description here

现在有三个.htaccess文件。一个在“bestil”文件夹中,一个在“app”文件夹中,一个在“公共”文件夹中。

“订单”文件夹.htaccess:

RewriteEngine On

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

RedirectMatch ^/$ /public/

“public” - 文件夹.htaccess:

Options -MultiViews
RewriteEngine On

RewriteBase /public

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

app文件夹中的.htacess文件只阻止未尝试访问。正如你所看到的,我试图将我的MVC重写条件与https混合 - 这不起作用,因为我加载的所有内容都是“混合”的,因此.css文件和.js文件都是通过http加载的。

我不是.htaccess写的专家,因此我问你如何使两个.htacess文件正确?

谢谢

php .htaccess mod-rewrite
1个回答
2
投票

正如你所看到的,我试图将我的MVC重写条件与https混合 - 这不起作用,因为我加载的所有内容都是“混合”的,因此.css文件和.js文件都是通过http加载的。

这个问题与mod_rewrite无关。

通过HTTPS加载HTML页面后,它包含指示浏览器通过HTTP加载CSS和JS的指令。

即使尝试这样做会导致重定向回到HTTPS,安全性也已经破坏,因此浏览器会抱怨。

您需要更改HTML,以便从一开始就使用HTTPS为JS和CSS指定的URL。通过使用相对URL而不是绝对URL,最容易实现这一点。

© www.soinside.com 2019 - 2024. All rights reserved.