.htaccess 强制使用 HTTPS

标签 .htaccess redirect https

我正在尝试在域上强制使用 HTTPS。它必须使用通过域名而不是端口号工作的方法来完成(由于主机结构/设置)。

我最接近的尝试是:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^mydomain.com$
RewriteRule ^.*$ https://www.mydomain.com/$1 [R=301,L]

这在地址栏中输入“mydomain.com”时有效,自动重定向到“https://mydomain.com”但是当我输入“www.mydomain.com”时它不起作用。我认为这是一个语法问题,因为我对 htaccess 非常陌生,并且花了大约 4 个小时试图从其他人的代码创建解决方案。

有机会指点一下吗?

为了使设置更容易理解。
/public_html/ - 此文件夹中的所有文件都与 www.mydomain.com 有关/public_html/subfolder - 这些文件夹包含也与 mydomain.com 相关的文件/public_html/subdomain - 这些文件夹包含与 www.myotherdomain.com 相关的文件

我的其他域是 mydomain.com 的子域用于在主机上的 cpanel 中列出。例如:subdomain.mydomain.comwww.myotherdomain.com 相同.

希望这可以清除结构。

最佳答案

每当向确切域 mydomain.com 发出请求时,就会发生重定向。 (这就是 RewriteCond 正在测试的内容)。它不适用于任何其他域,也不会检测 HTTPS。改用这个:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.mydomain.com/$1 [R=301,L]

关于.htaccess 强制使用 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11040607/

相关文章:

facebook - 应用程序名称在自动收报机上显示不正确

java - 带有证书的签名小程序偶尔会通过 HTTPS 被拒绝

php - Web 服务器上默认为 PHP 扩展

.htaccess - 使用 cPanel 和插件域时 htaccess 如何工作

.htaccess mod_rewrite : rewriting querystring to path

asp.net-mvc - 从 ASP.NET MVC Controller 重定向到外部 URI

c# - 为什么 Response.Redirect 不重定向外部 URL?

javascript - 您好,我需要知道如何在 OpenShift for Angular 的 RAILS REST 应用程序中启用 CORS

php - jsonp、json、jquery、ajax 和 wordpress 刷新页面! :S

linux - 防止git pop gnome密码框