【问题标题】:Htaccess redirect URL to another one and delete charactersHtaccess 将 URL 重定向到另一个并删除字符
【发布时间】:2021-04-27 14:27:18
【问题描述】:

我希望将旧网站重定向到新网站,网址如下所示:https://test.fr/directory/homepage.html 在我的 .htaccess 文件中,我有:

RedirectPermanent / https://google.com/`

但它的作用:https://google.com/directory/homepage.html

我想重定向到https://google.com/ 并删除.com/ 之后的所有内容,但我不知道怎么做。

【问题讨论】:

  • 请在您的问题中分享您的 htaccess 规则文件,谢谢。

标签: apache .htaccess redirect


【解决方案1】:

只需使用重写模块:

RewriteEngine on
Rewrite ^ https://google.com/ [R=301,END]

显然需要将重写模块加载到http服务器中。这通常是这种情况,当然适用于所有托管服务提供商。

如果您只想在您的 http 主机中重定向该特定 URL,那么应该这样做:

RewriteEngine on
Rewrite ^/?directory/homepage\.html$ https://google.com/ [R=301,END]

您可以在分布式配置文件(“.htaccess”)中实现此类指令。不过,如果您有权访问,您应该更喜欢实际的 http 服务器的主机配置。

【讨论】:

  • 你为什么在重定向规则上使用END 标志?
  • @AmitVerma 前段时间我自己很惊讶,如果没有LEND 标志,重定向not 总是有效。我不知道为什么......从文档中我了解到外部重定向将总是立即终止重写过程,这可能是有道理的。但如前所述:我偶然发现了两种情况,如果没有终止标志,这将不起作用。随便。
  • @AmitVerma 是的,它与此处的L 标志具有相同的效果。一般来说,我更喜欢END 标志,因为它对我来说似乎更透明。很清楚将会发生什么。在那一刻,没有其他重写规则没有想到。
  • Arakscha,我经常在不同版本的 Apache 上测试带或不带标志的 RewriteRules,但我看不出有什么区别。即使您不使用标志,规则也一样。
  • @AmitVerma 谢谢。这也是我的理解。我记得大约 3 年前,当我偶然发现两个确实产生影响的案例时,我感到非常惊讶。不幸的是我不记得细节了。我的错。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-22
  • 2022-01-13
相关资源
最近更新 更多