【问题标题】:.htaccess RedirectRule where the target URL has to be computed.htaccess RedirectRule 必须计算目标 URL
【发布时间】:2011-01-08 14:28:54
【问题描述】:

我有一种情况需要重定向这样的 URL (1)

http://site.com/person/145

到这样的 URL (2)

http://site.com/person/john

在我的应用程序中,我知道 ID 145 对应于单词 john。我将如何创建一个采用 (1) 的 301 RedirectRule,使用 PHP 或其他脚本查找 ID 的值,然后在 (2) 中动态应用找到的值,即“john”?

需要计算此解决方案,因为有超过 150,000 个唯一 ID。如果手动完成,这将意味着 .htaccess 中有 150,000 条 RedirectRule 行——这似乎不是一个好计划。

【问题讨论】:

    标签: .htaccess dynamic


    【解决方案1】:

    使用这样的规则:

    RewriteRule ^person/(\d+)$ person.php?id=$1&redirect=true [L,QSA]

    并让person.php 执行重定向到http://site.com/person/john。您的应用程序“知道”如何执行转换,因此不要浪费时间重写该逻辑。

    如果两个 URL 是等价的,那么可以说这样做的好处是微乎其微的,因为需要两次应用相同的查找(尽管方向不同),并且会稍微降低用户体验。如果您担心,例如搜索引擎将“丑陋”的 URL 编入索引,然后让页面包含规范参考,例如

    <link rel="canonical" href="http://site.com/person/john" />

    【讨论】:

      猜你喜欢
      • 2018-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多