HTTP 重定向到 HTTPS,同时保留角度路由 (.htaccess)

ayZ*_*gen 2 .htaccess https redirect http angularjs

我想要做的就是阻止该站点访问 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]
Run Code Online (Sandbox Code Playgroud)

Nek*_*yim 5

前 2 个重写条件将忽略现有文件和目录,但根目录(通常)始终存在。尝试删除第一个块。

这将足够:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Run Code Online (Sandbox Code Playgroud)

要使角度路线起作用,您需要像这样的另一个块

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^ index.html
Run Code Online (Sandbox Code Playgroud)

这样所有非 SSL 流量都将被重定向。第二部分将所有内容重写到您的角度索引文件中,除了现有的目录和文件