Dot-Htaccess
如何將 example.com 從 HTTPS 重定向到 HTTP,然後將 HTTP example.com 重定向到 newdomain.com?
截至目前,我使用此規則(在 example.com 的 .htaccess 中)將 HTTPS/HTTP example.com 重定向到 newdomain.com:
Options +FollowSymLinks RewriteEngine on RewriteRule (.*) http://newdomain.com/$1 [R=301,L]
通過搜尋,我發現以下規則將 HTTPS 重定向到 HTTP:
RewriteEngine On RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
我如何組合這些,以便 -
https://example.com
重定向到http://example.com
,然後http://example.com
重定向到http://newdomain.com
.我無法解釋為什麼我不要求這樣的東西 - HTTPS/ 重定向到http://newdomain.com。簡而言之,我已經搜尋並詢問過,建議的規則不起作用,可能是因為我使用的是自簽名證書,並且兩個域的證書相同(example.com 是一個外掛域,newdomain.com是主域)。請指教,如果這有意義。
感謝@Shane Madden 的所有幫助。都搞定了。這是我曾經和正在使用的 .htaccess (of example.com) 規則:
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^.*example\.com$ [NC] RewriteRule ^(.*)$ http://newdomain.com/$1 [R=301,L]
它之前不起作用的原因是因為兩個域使用相同的 SSL 證書(因為一個是另一個域的 Cpanel 帳戶下的外掛域)。“HTTPS 重定向不適用於外掛域。”
所以,我所做的是為 example.com 創建一個新的 cpanel 帳戶。也就是為 example.com 獲取單獨的 SSL 證書就這麼簡單。
有趣的要求,我不確定我是否理解您為什麼要這樣做 - 只是需要兩個
301
響應才能訪問 newdomain.com 而不是一個.. 但是,我想這會做到:RewriteEngine on # First rule - if this is an SSL connection, then redirect # to http://example.com then stop processing other rules RewriteCond %{HTTPS} on RewriteRule (.*) http://example.com/$1 [R=301,L] # Second rule - all other requests, redirect to http://newdomain.com. RewriteRule (.*) http://newdomain.com/$1 [R=301,L]