【问题标题】:Redirect any URL to new domain regardless of protocol, third-, second-, or toplevel domain将任何 URL 重定向到新域,而不考虑协议、第三级、第二级或顶级域
【发布时间】:2017-02-21 15:41:27
【问题描述】:

我想将各种旧域重定向到新域。挑战在于,无论以下情况如何,都应该进行重写:

  • 协议(http 或 https)
  • 子域(带 www. 或不带 www.)
  • 二级域(例如 domainA、domainB 或 domainXYZ),因为此服务器上的旧域列表相当长
  • 顶级域(例如 .com、.fr、.de)

新的输出 URL 应始终为:https://www.newdomain.com/oldpath

旧网址中的任何路径或文件名都应添加到新网址中

我尝试了各种重写条件和规则,但到目前为止都没有达到预期的结果。任何帮助将不胜感激。

【问题讨论】:

  • 请分享您的尝试。
  • @starkeen RewriteRule ^(?:http[s]?:[/]{2}|)[^/]+[/]?(.*[/]?)$ https://www.newdomain.com/$1 [NE,R=301,L]
  • 请不要在评论区发布您的代码。您应该编辑您的问题以发布代码。

标签: .htaccess redirect url-rewriting


【解决方案1】:

您可以尝试Redirect,而不是mod_rewrite,这似乎适合您的要求

那么任何以 URL-path 开头的请求都会在目标 URL 的位置向客户端返回一个重定向请求。 匹配的 URL 路径之外的附加路径信息将附加到目标 URL。

Redirect / https://www.newdomain.com/

当它按预期工作时,您可以将状态码设置为301 (permanent redirect)。

【讨论】:

  • 非常感谢您的帮助。澄清一下:这个重定向命令我应该放在 .htaccess 中,对吧?
  • 是的,只需将其放在文档根目录下的 .htaccess 文件中即可。如果您有权访问它,您也可以将此指令放在虚拟主机配置中。
  • 我尝试了您的重定向命令,但它总是导致错误:ERR_TOO_MANY_REDIRECTS。有什么建议吗?
  • .htaccess 文件中还有其他规则吗?
  • 或者你在newdomain.htaccess文件中有规则吗?
猜你喜欢
  • 2011-11-04
  • 1970-01-01
  • 1970-01-01
  • 2021-06-09
  • 2017-12-03
  • 2010-11-30
  • 2014-01-13
  • 1970-01-01
  • 2014-02-18
相关资源
最近更新 更多