【问题标题】:.htaccess URL rewrite for 2 variables.htaccess URL 重写 2 个变量
【发布时间】:2012-06-02 07:38:42
【问题描述】:

我在使用 .htaccess 重写 URL 时遇到问题,当 URL 看起来像这样时 原网址:http://www.example.com/page.php?id=1&name=test 重写后:http://www.example.com/page-1-test 工作正常

但经理要求用连字符而不是空格,所以我这样做了

$name = str_replace(" ", "-", $name);

然后我回显 $page_name http://www.example.com/page.php?id=2&name=test-some-other-text

所以它看起来像这样http://www.example.com/page-2-test-some-other-text

当我尝试 $_GET['id']; 时,它需要 2-test-some-other-text 作为 id;

这是我在 .htaccess 中的重写规则

RewriteRule page-(.*)-(.*)$ page.php?id=$1&name=$2

【问题讨论】:

  • 试试RewriteRule page-(\d+)-(.*)$ page.php?id=$1&name=$2,这样可以更好地控制群组。
  • page-(.*) 将捕获page- 之后的任何内容,它不会在另一个破折号处停止。
  • @Jones 您的解决方案也非常有效,感谢大家的帮助

标签: php .htaccess url-rewriting


【解决方案1】:

由于ID是数字,试试这个规则:

RewriteRule page-([0-9]+)-(.*)$ page.php?id=$1&name=$2

它只会匹配 ID 的数字,然后在最后一个破折号处结束,而不是继续尝试贪婪匹配。

【讨论】:

  • 就像魔术一样,谢谢你,你让我免于被解雇
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-01
  • 2015-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-23
  • 1970-01-01
相关资源
最近更新 更多