我正在尝试形成一个 URL 重写规则,该规则将处理诸如mysite.com/categoryName/
和之类的 URL mysite.com/categoryName/productName/
,并将它们路由到单独的处理程序。在我的 .htaccess 文件中,如果我使用:
RewriteRule shop/(.*^/)/$ view.php?mode=category&id=$1
RewriteRule shop/(.*)/(.*)/$ view.php?mode=product&id=$2
产品页面重写正确,但类别 URL 抛出 400。如果我使用:
RewriteRule shop/(.*[^/])/$ view.php?mode=category&id=$1
RewriteRule shop/(.*)/(.*)/$ view.php?mode=product&id=$2
反之亦然(类别页面显示,但产品页面上显示 400 个)。
我不知道这是否是我的 RegEx 的问题(很可能),某些 URL 必须由两个规则检查的事实,或者是否可能有一种方法可以使用单个规则进行两个重写。任何投入将不胜感激。提前致谢!