我创建了一个遵循CodeCourse-youtube系列https://www.youtube.com/watch?v=OsCTzGASImQ的MVC结构的网站。
该文件夹是结构:
现在有三个.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文件正确?
谢谢
正如你所看到的,我试图将我的MVC重写条件与https混合 - 这不起作用,因为我加载的所有内容都是“混合”的,因此.css文件和.js文件都是通过http加载的。
这个问题与mod_rewrite无关。
通过HTTPS加载HTML页面后,它包含指示浏览器通过HTTP加载CSS和JS的指令。
即使尝试这样做会导致重定向回到HTTPS,安全性也已经破坏,因此浏览器会抱怨。
您需要更改HTML,以便从一开始就使用HTTPS为JS和CSS指定的URL。通过使用相对URL而不是绝对URL,最容易实现这一点。