0

我有一个名为 show.php 的动态页面。该页面是动态的,并且 url 可以是show.php?name=john-doeshow.php?category=student

我正在尝试创建一个重写规则,将 url 转换/show/john-doe.html为名称或/show/student.html类别。

到目前为止,这就是我的 .htaccess 中的内容。

RewriteRule ^show/([^/]*)\.html$ show.php?name=$1 [L]
RewriteRule ^show/([^/]*)\.html$ show.php?category=$1 [L]

目前,只有名称规则有效,类别规则无效。怎么了?

4

1 回答 1

0

问题是您将所有 show/xxx.html 发送到同一个 URL(第一个)。由于两个重写规则都使用完全相同的参数,所以只有第一个可以工作。

你可以用两种不同的方式解决这个问题。

您可以使用 show.php?id=xxx 并接受 PHP 中的名称和类别,然后确定要显示的页面。

或者您在重写中使用两种不同类型的 url 来获取 show/category/student.html 和 show/student/john-doe.html,如下所示:

RewriteRule ^show/student/([^/]*)\.html$ show.php?name=$1 [L]
RewriteRule ^show/category/([^/]*)\.html$ show.php?category=$1 [L]
于 2011-01-29T10:24:00.323 回答