【问题标题】:Redirect subdomain and folder by htaccess通过 htaccess 重定向子域和文件夹
【发布时间】:2021-01-06 06:47:52
【问题描述】:

我想重定向 it.example.com/it 到 .htaccess 中的 https://example.com/it

我该怎么做? 我用过这个

RewriteCond %{HTTP_HOST} ^it.example.com/it
RewriteRule ^(.*)$ https://example.com/it/$1 [R=301,L]

但是没有用。

我在它的目录中使用了另一个 .htaccess 文件。它的内容是

  RewriteBase /it/
  RewriteCond %{HTTPS} off
  RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]]

【问题讨论】:

    标签: .htaccess redirect mod-rewrite url-rewriting


    【解决方案1】:

    HTTP_HOST 仅匹配主机/域名。它与 URI 不匹配。

    你可以使用:

    RewriteCond %{HTTP_HOST} ^it\.(example\.com)$ [NC]
    RewriteRule ^it(?:/|$) https://%1%{REQUEST_URI} [R=301,L,NE.NC]
    

    【讨论】:

    • 谢谢。我的主域不适用于此代码。我有另一个类似 mechnical.exaxmple.com 和 chemical.example.com 的域,我不希望这段代码更改它们。
    • 只要确保这是您在 it.example.com 子域的根 .htaccess 中的最高规则
    • 您似乎没有it.example.com 的正确 SSL 证书。你能在浏览器中输入http://it.example.com/it进行测试吗
    • it.example.com/it 和 it.example.com/it/ 不起作用。这些域显示警告:潜在的安全风险消息
    • 该警告意味着您请求的是https:// 站点而不是http://。您的父亲是从http->https 重定向的吗?
    【解决方案2】:

    您正在尝试匹配主机变量中的 URI,您需要从中删除您的 uri 部分。您能否尝试使用显示的示例进行以下、编写和测试。请确保在测试 URL 之前清除浏览器缓存。

    RewriteEngine ON
    RewriteCond %{HTTP_HOST} ^it\.(example\.com)$ [NC]
    RewriteRule ^(.*)/?$ http://%1/$1 [R=301,NE,L]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-14
      • 1970-01-01
      • 2012-09-17
      • 2012-11-23
      • 2018-05-17
      • 2013-11-08
      • 1970-01-01
      • 2012-06-24
      相关资源
      最近更新 更多