【问题标题】:apache .htaccess file https:// redirect ---- rewrite it for subdirectory?apache .htaccess 文件 https:// 重定向 ---- 将其重写为子目录?
【发布时间】:2011-04-07 08:19:19
【问题描述】:

这是我的代码:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

如果我将它放在我的主目录的 .htaccess 文件中,这将成功地将所有内容重写为 https(它将“强制”https)。但是,如果我只希望 /support 的子目录强制使用 https 呢?上面的代码怎么改写?

意图是关于在 WHMCS 中强制 https

提前致谢!

【问题讨论】:

  • 子域支持是什么意思? http://subdomain.sitename.com/https://subdomain.sitename.com/ 而不是从 http://sitename.com 重定向到 https://sitename.com ??

标签: apache .htaccess https


【解决方案1】:

如果您只想重定向一个子文件夹而不是子域,那就更容易了。要重定向子文件夹 /support/ 您将使用以下代码:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^/support/(.*)$ https://%{HTTP_HOST}/support/$1 [QSA]

我添加了一个 QSA 标志,它将强制将输入的任何查询字符串附加到重定向 URL。如果您在网站的此部分中不使用查询字符串,则可以删除该标志。此外,如果显示的字符串不起作用,您可以尝试从 RewriteRule 中删除前导斜杠并重试。

【讨论】:

    【解决方案2】:

    在 %{HTTPS} 行之前添加以下规则:

    RewriteCond %{HTTP_HOST} ^support.domain.com$
    

    仅当访问者来自子域时才允许执行规则。请注意,这些规则可能需要放在作为子域根目录的 .htaccess 文件中,而不是主站点根文件夹中。

    【讨论】:

    • 抱歉,我指的是子目录,而不是子域。谢谢
    • 谢谢!唯一的问题是我问了我认为的错误问题,因为我正在寻找子目录,而不是子域(site.com/subdirectory vs subdomain.site.com
    猜你喜欢
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-08
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多