簡體   English   中英

Wordpress多站點強制使用域HTTPS和WWW,僅使用HTTPS子站點HTACESS

[英]Wordpress multisite Force HTTPS and WWW for domain and only HTTPS for subdomains HTACESS

我目前有一個wordpress多站點設置,包括兩個站點,一個是子域。 我們可以調用主域名www.domain.com和子域名test.domain.com

  • 對於這兩個域,我需要強制https
  • 對於主域,我還需要強制執行ssl和www,使其成為https://www.domain.com

我遇到的主要問題是,當我輸入https://test.domain.com時,這將正常工作,但當我輸入http://test.domain.com時,我被重定向到https://www.domain.com這是主要的網站,而不是子域名網站。

<IfModule mod_rewrite.c>
RewriteEngine On

# for subdomains
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^(test\.domain\.co)$ [NC]
RewriteRule ^.*$ https://%1%{REQUEST_URI} [R,L]

# for main domains
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^domain\.co$ [NC]
RewriteRule ^.*$ https://www.domain.co%{REQUEST_URI} [R,L]


RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
</IfModule>

對於子域,您可以使用此規則:

# for subdomains
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^(test\.example\.com)$ [NC]
RewriteRule ^.*$ https://%1%{REQUEST_URI} [R,L]

好的,我找到了我總是重定向到https版本的原因。 我最初設置apache服務器以使用虛擬主機。 在所有http請求的文件中,或者更確切地說是端口80,例如<VirtualHost *:80>我愚蠢地創建了Redirect permanent / https://maindomain.co/的重定向規則Redirect permanent / https://maindomain.co/

我通過刪除重定向並讓我的.htaccess文件管理重定向來解決了這個問題。 它現在很漂亮。

暫無
暫無

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

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