我剛剛添加了以下規則來強制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