【问题标题】:Add https enforcement to a second domain in .htaccess将 https 强制添加到 .htaccess 中的第二个域
【发布时间】:2018-12-06 15:13:15
【问题描述】:

我当前的 .htaccess 文件如下所示:

# Use PHP56
AddHandler application/x-httpd-php56 .php
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^directoryhub\.net [NC]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.directoryhub.net [R,L]

这会将directoryhub.net(我在public_html 中的根域)重定向到https。

但是,现在我想对第二个域做同样的事情(所有文件都在public_html 的子文件夹中)。我怎样才能做到这一点?

【问题讨论】:

  • 您的第二个域是否指向/subfolder,这意味着当您输入seconddomain.com 时,您会看到/subfolder 页面吗?

标签: .htaccess https


【解决方案1】:

不要在条件和目标中使用硬编码的主机名,使其对您的 .htaccess 控制的所有域都是通用的:

RewriteEngine On 

RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]

【讨论】:

  • 我将我的 .htaccess 文件更改为此,但它不起作用。我需要清除浏览器缓存吗?
  • 是的,应该清除缓存。确保这是首要规则,并且您的系统上没有其他 .htaccess。
【解决方案2】:

我意识到我正在编辑根文件夹中的.htaccess 文件,这是错误的文件。我需要将public_html 中的.htaccess 文件以及我的每个子域中的.htaccess 文件编辑为以下内容:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://mydomain/$1 [R=301,L]

我想我也可以删除我的子域的所有.htaccess 文件并将根.htaccess 更改为@anubhava 的答案,但它也可以通过编辑每个单独的文件来工作。

【讨论】:

    猜你喜欢
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    • 1970-01-01
    • 2014-01-20
    • 1970-01-01
    • 2016-06-15
    • 2017-06-08
    相关资源
    最近更新 更多