[英]Redirect secured domain to secured subdomain using htaccess
我有3個域和一個托管。 我正在嘗試通過htaccess對我的所有三個域使用相同的托管。 因此,我在域名上創建了一個與托管鏈接的子域名,如下所示。
www.site1.com
[與托管鏈接的主域]
site2.site1.com
[ www.site2.com
子域]
site3.site1.com
[ www.site3.com
子域]
我要實現的是,用戶不應轉到子域site2.site1.com
,而只能訪問www.site2.com
並且請求將在后端發送到site2.site1.com
。
到這里為止,所有工作都已完成並且運行良好。 唯一的問題是當我在站點上添加SSL
之后。 對於所有這些域和子域,我都有SSL
。 如果用戶訪問非SSL,則應將其重定向到SSL。 一些SSL運作良好,但是當我為所有SSL添加SSL時,我開始收到500
錯誤。
這是我的.htaccess
文件
RewriteEngine On
DirectoryIndex index.php
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^site2.com
RewriteRule ^(.*) https://site2.site1.com/$1 [P]
RewriteCond %{HTTP_HOST} ^www.site2.com
RewriteRule ^(.*) https://site2.site1.com/$1 [P]
RewriteCond %{HTTP_HOST} ^site3.com
RewriteRule ^(.*) https://site3.site1.com/$1 [P]
RewriteCond %{HTTP_HOST} ^www.site3.com
RewriteRule ^(.*) https://site3.site1.com/$1 [P]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
當我在重定向鏈接上添加https
時,它開始給我500
錯誤,而當我重定向到http
,它將不會加載我的頁面,因為非安全站點http://site2.site1.com
將通過安全https://www.site2.com
加載https://www.site2.com
,結果將不會顯示任何內容。
在這里,我需要幫助來解決此問題。 我查看了不同的問題,但沒有找到與我相關的任何問題,因為我需要保持.htaccess
與重定向和SSL
。 此外,如果未在URL中添加,我還需要重定向到www
一。
任何幫助將不勝感激。
就像我在這里經歷的所有時間一樣,我自己都解決了自己的問題。 解決我的問題的方法是以下htaccess
RewriteEngine On
DirectoryIndex index.php
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^site2.com
RewriteRule ^(.*) site2/$1
RewriteCond %{HTTP_HOST} ^www.site2.com
RewriteRule ^(.*) site2/$1
RewriteCond %{HTTP_HOST} ^site3.com
RewriteRule ^(.*) site3/$1
RewriteCond %{HTTP_HOST} ^www.site3.com
RewriteRule ^(.*) site3/$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
這樣,我沒有將URL指向具有https
subdomain
,而是將其引用到目錄中,因為路徑與此相同,現在當我輸入帶有https
的URL
,頁面打開並且不會出現任何錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.