我有一个名为show.php的动态页面。该页面是动态的,网址可以是show.php?name=john-doe
或show.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]
目前,只有名称规则有效,但类别规则却没有。怎么了?
答案 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]