我有一個主域和許多子域,現在我想將主域重定向到其 HTTPS 并將其他域重定向到其子域,例如:
- main.com 重定向到https://main.com
- domain1.com 重定向到 domain1.main.com
- domain2.com 重定向到 domain2.main.com
現在我用這個
RewriteEngine On
RewriteBase /
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^www.main.com [OR]
RewriteCond %{HTTP_HOST} ^main.com [NC]
RewriteRule ^(.*)$ https://www.main.com/$1 [R,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
此代碼僅重定向 main.com,其他域必須檢查 index.php 并重定向到特定的子域,我想在 htaccess 中執行整個作業。
uj5u.com熱心網友回復:
這可能就是你要找的:
RewriteEngine On
RewriteBase /
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^(?:www\.)?main\.com
RewriteRule ^ https://www.main.com%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} !^(?:www\.)?main\.com
RewriteCond %{HTTP_HOST} ^(?:www\.)?([^.] )\.com
RewriteRule ^ https://%1.main.com%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
首先使用R=302 臨時重定向是有意義的,只有在一切正常時才將其更改為R=301 永久重定向。
顯然,這要求對那些其他域的請求由實作此規則集的 http 主機處理。因此,您很可能希望為這些域定義主機別名或在 http 服務器中使用默認虛擬主機。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/326433.html
