簡體   English   中英

如何以角度從 HTTP 重定向到 HTTPS

[英]How to redirect from HTTP to HTTPS in angular

我有以下.httaccess用於從 HTTP 頁面重定向到 HTTPS,但它顯然沒有按預期工作:

RewriteEngine On
# If an existing asset or directory is requested go to it as it is
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} (www\.)?myuniversity.ro
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# If the requested resource doesn't exist, use index.html
RewriteRule ^ /index.html

問題是,當我輸入我的實際網站時:
http://www.myuniversity.ro ,它會自動轉到http://www.myuniversity.ro/home ,就像它應該做的那樣,但是刷新后轉到 HTTPS,有沒有辦法進入 HTTPS從第一次嘗試開始?
我的意思是,從http://www.myuniversity.ro直接轉到https://www.myuniversity.ro/home而不需要刷新?
這是我的路由配置:

const routes: Routes = [
  { path: '',   redirectTo: '/home', pathMatch: 'full' },
  { path: 'home', component: HomeComponent }
];

您不應該以角度處理 http 到 https 的重定向。 這使您的服務器不再安全。 因為 api 沒有使用 angular,所以資產等。

你能檢查一下這對你有用嗎

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} www\.domain\.de [NC]
RewriteRule ^(.*)$ https://www\.domain\.de%{REQUEST_URI} [R=301,L]

和。 為什么使用重定向到 home 的角度而不是使用 '' 路徑來顯示 home 組件。 考慮一下。 我想最好在搜索引擎中擁有域而不是這個“家”的東西。

# If an existing asset or directory is requested go to it as it is RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR] RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d RewriteRule ^ - [L] RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} (www\\.)?myuniversity.ro RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

您以錯誤的順序擁有這 2 條規則。 HTTP 到 HTTPS 重定向應該是第一個。 當請求的 URL 映射到文件或目錄時,第一條規則阻止進一步處理。 請求根(即http://www.myuniversity.ro )是一個目錄 在這種情況下,甚至不會處理.htaccess的 HTTP 到 HTTPS 重定向。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM