【问题标题】:htaccess force https for certain directorieshtaccess 对某些目录强制 https
【发布时间】:2023-03-03 12:58:01
【问题描述】:

我想在 htaccess 中为以下目录强制 https:

  • /管理员
  • /帐户
  • /登录
  • /联系方式
  • /登录

到目前为止,我得到了以下代码:

RewriteCond %{HTTPS} =off
RewriteRule ^admin https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteRule ^account https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteRule ^login https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteRule ^contact https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteRule ^signin https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

但这仅适用于前两个目录,“/admin”和“/account”,其余目录不重定向到 https。

任何人都知道如何使其余目录的这项工作?

【问题讨论】:

    标签: regex apache .htaccess mod-rewrite https


    【解决方案1】:

    这对我也有用,但仅适用于每个目录中除根目录之外的所有页面。即,https://domain.com/folder/ 不在 SSL 中。

    【讨论】:

      【解决方案2】:

      RewriteCond 仅适用于下一个RewriteRule。您的多个规则可以合并为一个。考虑这段代码:

      RewriteCond %{HTTPS} off
      RewriteRule ^(admin|account|login|contact|signin) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
      

      【讨论】:

      • 我注意到您使用了 off 而不是 =off。这是有原因的,还是只是一个错字?
      • @Macchiato:我相信两者的行为相同。该规则对您有用吗?
      猜你喜欢
      • 2012-07-11
      • 2013-03-06
      • 2010-12-18
      • 2016-07-05
      • 2011-05-10
      • 2012-06-17
      • 1970-01-01
      • 2014-05-05
      • 1970-01-01
      相关资源
      最近更新 更多