【问题标题】:How to redirect using regular expressions without changing the URL?如何在不更改 URL 的情况下使用正则表达式进行重定向?
【发布时间】:2014-11-20 10:41:46
【问题描述】:

我正在用 wordpress 重建一个网站。现有网站具有独特的个人资料页面,其 URL 格式为 www.domain.com/b/ch/2lZl.htm

新系统将拥有独特的个人资料页面,格式为 www.domain.com/profile/bch2lZL(其中 bch2lZL 是唯一的用户 ID)。

我需要做的是获取这个唯一 ID 并加载页面 www.domain.com/tracker/public/user/bch2lZL 它将进行处理(为此用户加载内容等)但不想要从 www.domain.com/profile/bch2lZL 更改的 URL。

我希望这可以通过 htaccess 重定向来实现,它可以加载用户可以转到域 www.domain.com/profile/bch2lZL 并显示实际上位于 www.domain.com 的页面/tracker/public/user/bch2lZL 不改变 URL

这可能吗?我该怎么做?

提前干杯

【问题讨论】:

标签: php regex .htaccess redirect


【解决方案1】:

这可以通过 htaccess 中的 RewriteRule 来完成

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^/b/ch/(.*).htm$ www.domain.com/profile/$1 [R=301,L]

【讨论】:

  • 太好了,谢谢 Wobbles。我正在使用规则RewriteRule ^[a-z]{1}/[a-z]{2}/([0-9]+).htm /profile/$1 [P,L]。问题是,[0-9]+ 周围的括号会导致页面重定向(而不是保留 URL)。有没有办法在不更改 URL 的情况下传递变量?此外,在 [a-z]{2}[a-z]{1} 周围添加括号(用作第二个 URL 中的变量)会停止匹配
  • 将您希望重用的任何表达式包装在括号中,然后在带有基数 1 索引的 url 中访问它,因此 $1 $2 $3 等...
猜你喜欢
  • 2019-01-14
  • 2017-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-22
  • 2021-12-26
  • 2013-07-26
  • 2013-08-11
相关资源
最近更新 更多