【问题标题】:Help with understanding why this rewrite doesn't work?帮助理解为什么这种重写不起作用?
【发布时间】:2011-05-12 07:26:09
【问题描述】:

我有这个:

 RewriteRule ^show_shop/([0-9]+)$ show_shop.php?id=$1 [NC]

当输入这样的 url 时:“domain.com/show_shop/4”然后获取 url,并显示“show_shop.php”。所以重写是有效的。

但是,斜线后面的 nr 不起作用。我使用此代码:

  $id = $_GET['id'];

但它会导致空白,即那里什么都没有。不是按照php设置的。

这可能是什么原因。

仅供参考,我还有很多其他类似的规则,它们运行良好,但这个似乎很麻烦......

像“show_shop.php?id=4”这样手动输入网址(真实网址)可以正常工作,并且 id 是 GET 并且一切正常。

有什么想法吗?

【问题讨论】:

  • 转储 $_SERVER 和 $_REQUEST 以查看 id 被丢弃的位置。
  • 说真的,这与安全性完全无关。此外,您可能在服务器故障上运气更好,不是开玩笑。

标签: php html .htaccess mod-rewrite


【解决方案1】:

试试 QSA 标志

RewriteRule ^show_shop/([0-9]+)$ show_shop.php?id=$1 [NC,QSA]

【讨论】:

    【解决方案2】:

    不应该是%而不是$

    RewriteRule ^show_shop/([0-9]+)$ show_shop.php?id=%1 [NC]
    

    【讨论】:

      猜你喜欢
      • 2017-05-05
      • 1970-01-01
      • 2016-11-15
      • 1970-01-01
      • 2021-03-15
      • 2014-10-24
      • 2011-05-12
      • 2012-04-28
      • 1970-01-01
      相关资源
      最近更新 更多