Http
將 http 重定向到 https 但排除一些
我正在使用 nginx,我想知道是否可以這樣做。
現在要管理我的虛擬主機,我在 /etc/nginx/sites-available 中分別創建它們(之後啟動它們)
mydomain.com subdomain.mydomain.com subdomain1.mydomain.com anotherdomain.com
因此,要將 http 重定向到 https,我創建了一個重定向 vhost,其中包含:
server { listen 80 default_server; listen [::]:80 default_server; server_name _; return 301 https://$host$request_uri; }
mydomain.com 和所有其他子域都在 https 下。
但問題是anotherdomain.com,我不想將其重定向到https。在這裡我不知道該怎麼做。我有一個主意 :
僅在包含所有配置的 vhost 上創建,然後執行以下操作:
# Config of anotherdomain.com # Redirect all domain/subdomain after this part to https server { listen 80 default_server; listen [::]:80 default_server; server_name _; return 301 https://$host$request_uri; } # Config of mydomain.com # Config of subdomain.com # Config of subdomain1.com
這將作為一種覆蓋工作,就像在 CSS 中一樣?
感謝您的回饋意見。
通常,每個域/子域都有一個轉發塊。我以前從未見過使用 default_server 進行重定向,但在大多數情況下它可能沒問題。
因此,您無需使用預設伺服器,而是為相關域或每個域定義一個塊,如下所示
server { listen 80; server_name anotherdomain.com; location / { // whatever } }
這將覆蓋 default_server 塊。我個人會按域為每個網站定義轉發塊,只是因為它看起來更整潔。
server { listen 80; server_name example.com; return 301 https://example.com$request_uri; }