我刚刚在我的付款页面上添加了以下规则以强制使用HTTPS,因为我不确定如何仅在domain.com
而不是user1.domain.com
强制使用HTTPS - 不太确定如何这样做,甚至是可能的。
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} /join/payment
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
所以我添加了该规则并且它运行正常,但是,是否可以在我的完整域上强制使用HTTPS而不是我的任何子域?
我的完整htaccess文件
RewriteEngine on
RewriteCond $1 !^(index\.php|images|js|profile_pictures|fonts|stylesheets|robots\.txt)
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} /join/payment
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [NE,R=301,L]
RewriteCond %{HTTP_HOST} !^((www\.)?)domain\.com [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com
RewriteRule ^(.*)$ http://domain.com/site/%1$1 [L,NC,P]
RewriteCond %{HTTP_HOST} !^domain\.com$ [NC]
RewriteRule ^((?!site/).*)$ http://domain.com/site/$1?host=%{HTTP_HOST}&page=%{REQUEST_URI} [L,NC,P]
问题
是否可以仅在domain.com
上强制使用HTTPS而不在子域上强制使用HTTPS?如果可以在子域上强制使用HTTP而不是HTTPS,我也很想知道如何做到这一点。
答案 0 :(得分:0)
我认为这应该有效:
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} /join/payment
RewriteCond %{HTTP_HOST} !^((www\.)?)domain\.com [NC]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
也就是说,添加条件以检查HTTP_HOST是www.domain.com
还是domain.com
,然后再添加https://
。