2个动态页面的网址重写规则

时间:2011-01-29 10:02:57

标签: apache mod-rewrite dynamic-url

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

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

到目前为止,这就是我在.htaccess中所拥有的。

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

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

1 个答案:

答案 0 :(得分:0)

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

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

您可以使用show.php吗?id = xxx并在PHP中接受名称和类别,并在那里显示要显示的页面。

或者您在重写中使用两种不同类型的网址来获取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]