【问题标题】:URL rewrite - parameter is emptyURL 重写 - 参数为空
【发布时间】:2013-05-27 08:39:49
【问题描述】:

我正在努力让我的 htaccess 文件中的简单 URL 重写工作。它看起来像这样:

RewriteRule    ^getbars/([A-Za-z\d,]+)?$    getbars.php?guid=$1    [NC,L]

想法是将/getbars/519f1dec603f9等URL重定向到/getbars.php?guid=519f1dec603f9

然而,由于某种原因,当我尝试在 getbars.php 中获取 guid 参数时它是空的

但是,如果我将其更改为

RewriteRule    ^bars/([A-Za-z\d,]+)?$    getbars.php?guid=$1    [NC,L]

然后在我的浏览器中加载 /bars/519f1dec603f9,它似乎工作正常。

我做错了什么?

【问题讨论】:

  • 你还有其他重写规则吗?如果您在列出的第一个规则之上还有另一个规则,它将匹配该规则,并且永远不会到达您想要的规则。
  • 不。即使删除所有其他规则,我也会得到相同的结果
  • @andlin 可以被浏览器缓存。您是否尝试过清除缓存,或尝试其他方式?
  • 其实,在测试这样的东西时,我可以推荐在chrome中使用隐身模式。如果要清除缓存,只需关闭选项卡并打开一个新选项卡即可。

标签: regex apache .htaccess url-rewriting


【解决方案1】:

因为您的服务器上启用了内容协商(此处结合 PATH_INFO 功能)?如果是这种情况,内容协商会在读取重写规则之前自动“重写”getbars/* 到 getbars.php。

=> 您可以尝试在您的 .htaccess 中添加 Options -MultiViews 吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-15
    • 1970-01-01
    • 2021-05-08
    • 2014-04-19
    • 1970-01-01
    • 2013-08-12
    • 2018-10-29
    • 2012-06-16
    相关资源
    最近更新 更多