我确信这个问题有一个简单的答案,但是我已经通过可用的线程进行了搜索,它要么不在那里,要么我太无知了,无法从头开始识别它。 This似乎是答案,但我无法正确配置。
问题:如何设置.htaccess以便将所有子域转发到其https等效项,同时还允许主域本身移植到其https等效项?换句话说:
- hxxp://subdomain1.domain.com - > hxxps://subdomain1.domain.com
- hxxp://subdomain2.domain.com - > hxxps://subdomain2.domain.com
醇>...等等,但也......
- hxxp://domain.com - > hxxps://domain.com
醇>
当前配置: 我的.htaccess设置为提供无条件转发,如下所示:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://domain.com/$1 [R,L]
为了达到我的目的,我认为必须有一些方法来定义一个通配符,并将该通配符的结果作为子域 - 无论是subdomain1,subdomain2还是没有值 - 传递给实际的重定向。
非常感谢任何帮助。
答案 0 :(得分:0)
我没有对此进行测试,但它应该允许您捕获子域以及请求。
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^(.*)\.yourdomain\.com$
RewriteRule ^(.*)$ https://%1.domain.com/$1 [R,L]
但是,此规则不适用于不包含子目录的请求,因此您实际上需要两个规则。
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^yourdomain\.com$
RewriteRule ^(.*)$ https://domain.com/$1 [R,L]
答案 1 :(得分:0)
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]