【问题标题】:Two similar friendly urls - how to differentiate两个相似的友好网址 - 如何区分
【发布时间】:2012-06-17 23:27:50
【问题描述】:

我遇到了两个相似的友好网址的问题。我在 htaccess 中提到了以下几行。

RewriteRule ^user/([a-zA-Z0-9-]+) /sitename/profile.php?id_profile=$1 [QSA,L]
RewriteRule ^user/([a-zA-Z0-9-]+)/articles /sitename/articles.php?id_profile=$1 [QSA,N]

当我尝试访问第二个 url 时,它会重定向回第一个 url。我猜第一部分“用户”是导致这个问题的原因。

这里 id_profile 是一个字符串。在 php 文件中,我为 id_profile 获取相应的用户 ID(整数)并执行其余操作。

这是一个类似的工作示例。 https://www.etsy.com/people/vinubhai https://www.etsy.com/people/vinubhai/favorites

我想让它像 etsy 一样工作。请帮忙。

感谢和问候, Vineshkumar Kunhiraman

【问题讨论】:

  • 将链接放在两个单独的$vars 中,有帮助吗?

标签: php mod-rewrite friendly-url


【解决方案1】:

首先处理第一条规则。改变你的规则的顺序,你的问题应该得到解决。

先是文章改写,然后是用户一般改写。

【讨论】:

  • 感谢 Galen 和 Michael Dibbets,它现在可以通过反转序列来工作。
【解决方案2】:

您可以添加$ 来锚定字符串的末尾,也可以切换顺序

RewriteRule ^user/([a-zA-Z0-9-]+)$

这与文章网址不匹配

切换顺序会导致文章优先匹配,而profile url将不匹配文章重写规则

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-15
    • 2011-02-15
    • 2012-11-13
    • 1970-01-01
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    相关资源
    最近更新 更多