我刚刚添加了以下规则来强制HTTPS在我的付款页面上,只是因为我不知道如何强制HTTPS只在domain.com
而不是user1.domain.com
- 不太确定如何做到这一点,或者即使有可能。htaccess - 如何强制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]
问题
是否有可能只是强制HTTPS上domain.com
而不是子域?如果可以在子域上强制使用HTTP而不是HTTPS,我很想听听如何做到这一点。
在重定向到HTTPS之前,只需添加另一个'RewriteCond'来检查主机名称 - 类似于您已经进一步重新定向到'domain.com'。 (顺便说一句,后者会将任何不是'www'的子域重定向到基本域,所以你实际上不能拥有那么多其他子域?) – CBroe
所有的子域都是动态的,所以有超过100个子域。看起来,当我只在我的域上强制使用HTTPS时,它解开了子域。 – user2983512
你能解释最后2条规则是用'P'标志做什么的 – anubhava