【问题标题】:.htaccess rewrite to redirect alias to root domain subdirectory with http/https.htaccess 重写以使用 http/https 将别名重定向到根域子目录
【发布时间】:2018-06-25 12:56:05
【问题描述】:

我在 htaccess 中设置了一个重定向,将别名重定向到子目录:alias.example.com 正在重定向到 www.example.com/folder。

这是我的代码:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?alias.example\.com$ [NC]
RewriteRule ^ https://www.example.com/folder%{REQUEST_URI} [NE,R=301,L]

SSL 已设置并且适用于任何 URL,例如 https://alias.example.com/page,它转到 https://www.example.com/page

但是,如果别名 url 在 http 中,则会转到 404 错误页面:http://alias.example.com/pagehttp://www.example.com/404

我在代码中遗漏了什么吗?

谢谢

【问题讨论】:

  • 当通过 HTTP 请求时,听起来子域可能不会映射到您的 .htaccess 所在的文件夹?也许子域最初只是为“HTTPS”设置的,在一个仅覆盖 HTTPS/端口 443 的虚拟主机中,但也不为 HTTP/:80 设置......?
  • 欢迎来到 Stack Overflow 社区。我提供了工作示例。如果它解决了您的问题,请通过单击答案附近的右侧按钮接受它,让其他 SO 用户知道。如果您正在为解决方案而苦苦挣扎,请给我留言。
  • 别名设置为域名和文件夹。 htaccess 位于域的根目录。
  • Btw Prestashop 是在文件夹中配置的,如果相关了解
  • @AnkitRastogi,你的工作示例是什么?

标签: .htaccess http redirect https url-redirection


【解决方案1】:

下面是相同的工作代码。

RewriteEngine on
RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} ^alias.example.com [NC]
RewriteRule ^ https://www.example.com/folder%{REQUEST_URI} [NE,L,R=301]

htaccess 重写规则的演示/测试位于htaccess tester

我们将 https 与别名 rewrite 规则与 OR 子句结合在一起

在这条规则之后

http://alias.example.com/page 重定向到https://www.example.com/folder/page

【讨论】:

  • 我已将代码放在文件夹的 htaccess 中,而不是在站点的根目录中,它可以正常工作。谢谢!
猜你喜欢
  • 2017-04-11
  • 1970-01-01
  • 2017-06-26
  • 2016-01-30
  • 1970-01-01
  • 2021-07-08
  • 2015-05-19
  • 2014-01-17
  • 2019-03-03
相关资源
最近更新 更多