【发布时间】:2015-04-24 15:49:32
【问题描述】:
除非我们使用子域:foo.domain.com,否则我想强制使用 HTTPS。 当我在浏览器的隐身模式下打开该子域时,它可以工作。未添加 HTTPS。当我在浏览器上以正常模式打开该子域时,我收到一条错误消息:“您的连接不是私有的”。我可以看到浏览器上的 URL 现在显示为:https://foo.domain.com。清除浏览器的缓存似乎并不能解决问题。
RewriteBase /
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^foo\. [NC]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
谢谢!
【问题讨论】:
-
我觉得没问题。你看到重定向发生了吗?意思是如果你输入 http 它会变成 https?
-
是的,我看到浏览器地址栏上的 http 被替换为 https。我更新了我的问题以获得我正在尝试使用的实际子域。目前,它只适用于我在 Firefox 内的私人窗口中打开它。
-
如果您尝试使用其他浏览器会发生什么情况。也没有必要放置实际的子域。 foo 可以用于示例目的。您的子域如何在您的系统上运行?是根目录下的子文件夹吗?
-
它在我的任何其他浏览器中都不起作用,即使在“私人”模式下也是如此。此子域是外部 URL 的别名。目前,它不指向我们本地服务器上的资源。
-
如果它没有真正看到处于别名状态的主机,这可能是原因。您可能需要调整 vhost 配置并将子域添加到
ServerAlias指令中,然后查看是否可行。 httpd.apache.org/docs/2.2/mod/core.html#serveralias
标签: wordpress apache .htaccess https