【问题标题】:.htaccess redirect path with or without trailing slash.htaccess 带有或不带斜杠的重定向路径
【发布时间】:2012-08-10 04:54:56
【问题描述】:

给定以下路径: http://www.testsite.com/some/path/

我想把它重定向到 http://www.testing.com/new/stuff/

无论路径是否有斜杠,如何让 .htaccess 执行该重定向?

编辑

我试过了:

RedirectMatch 301 /some/path(.*) /new/stuff/$1

但是,它会导致以下重定向

http://www.testing.com/new/stuff/?/some/path

【问题讨论】:

  • 那里为什么会有?您是否还有其他一些导致这种情况的规则?
  • 这是调整 URL 的 codeigniter 站点的一部分,但关键是我不希望在 '/stuff/' 之后出现任何内容,而 '/?/some/path' 不应该在那里。如何让它在不附加到新路径的情况下进行重定向?
  • 如果 codeigniter 正在修改 URL,那么您需要查看那里,因为您的 RedirectMatch 正在做它应该做的事情。
  • 好的。忽略我写的内容,如何在不向新路径附加任何内容的情况下从一条路径重定向到另一条路径。我只希望它转到“/new/stuff/”,最后什么都没有,不管在“/some/path”之后是什么(如果有的话)

标签: .htaccess redirect


【解决方案1】:

如何在不向新路径附加任何内容的情况下从一条路径重定向到另一条路径。我只希望它转到“/new/stuff/”,最后什么都没有,不管在“/some/path”之后是什么,如果有的话

只需从RedirectMatch 的目标中删除$1。您还应该在 URI 的开头包含 ^

RedirectMatch 301 ^/some/path(.*) /new/stuff/

【讨论】:

  • 刚试过这个,我仍然在重定向的新路径的末尾添加'/?/some/path'。
  • @LoneWolfPR 一定是发生了其他事情,它按我的预期工作:i.stack.imgur.com/0eais.png
  • 我猜这与一些 codeigniter 相关规则有关。我可能不得不找到一种不同的方法来做到这一点。感谢您的帮助。
  • @LoneWolfPR 您是否尝试过将RedirectMatch 置于所有其他规则之上? /some/path 中是否有 htaccess 文件(优先)?
  • 我试过把它放在所有地方。结果相同。我不得不将解决方案构建到 codeigniter 框架中,而不是使用 .htaccess。现在工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-22
  • 2015-06-19
  • 1970-01-01
  • 1970-01-01
  • 2012-11-16
  • 2016-04-06
  • 1970-01-01
相关资源
最近更新 更多