我想做的就是阻止网站使用 http 而不是 https。这是我的 .htaccess 配置。只有 www.mywebsite.com 和 mywebsite.com 不转为 https。角度路线也可以。如果我写 mywebsite.com/signup 它也会使用 https。我应该怎么做才能将所有场景重定向到 https?
场景:
www.website.com -> 不是 https
website.com -> 不是 https
website.com/signin -> https
www.website.com/signin -> https
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]
RewriteRule ^ /
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
前 2 个重写条件将忽略现有文件和目录,但根目录(通常)始终存在。尝试删除第一个块。
这就足够了:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
要使有角度的路线发挥作用,您需要另一个像这样的块
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^ /index.html
这样所有非 SSL 流量都将被重定向。第二部分将把所有内容重写到你的角度索引文件中,除了现有的目录和文件