Apache 有冲突的mod重写帮助

Apache 有冲突的mod重写帮助,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我希望能够在这两个mod-re-writes上使用foo这是我目前拥有的,并且工作正常: #Links to categorys RewriteRule foo/(.*)/ foo.php?cat=$1 RewriteRule foo/(.*) foo.php?cat=$1 #Links to categorys with pagination RewriteRule fooo/(.*)/(.*)/ foo.php?cat=$1&id=$2 R

我希望能够在这两个mod-re-writes上使用foo这是我目前拥有的,并且工作正常:

#Links to categorys
    RewriteRule foo/(.*)/ foo.php?cat=$1
    RewriteRule foo/(.*) foo.php?cat=$1 

#Links to categorys with pagination    
    RewriteRule fooo/(.*)/(.*)/ foo.php?cat=$1&id=$2
    RewriteRule fooo/(.*)/(.*) foo.php?cat=$1&id=$2
但我真的想用这个来代替:

#Links to categorys
    RewriteRule foo/(.*)/ foo.php?cat=$1
    RewriteRule foo/(.*) foo.php?cat=$1

#Links to categorys with pagination    
    RewriteRule foo/(.*)/(.*)/ foo.php?cat=$1&id=$2
    RewriteRule foo/(.*)/(.*) foo.php?cat=$1&id=$2
因为两者都是相互关联的(相同的页面),只是额外分页id的一种情况,但如果我没有额外的“o”,它会冲突,所以给我一个404


非常感谢任何帮助

问题来自以下事实:

RewriteRule foo/(.*)
…将匹配符合分页规则的任何内容,并将首先执行此操作。最简单的解决方案是颠倒规则顺序并进行一些小的更改:

#Links to categorys with pagination
RewriteRule foo/([^/]*)/([^/]+)/? foo.php?cat=$1&id=$2

#Links to categorys
RewriteRule foo/([^/]*)/? foo.php?cat=$1
此外,如果您的脚本可以处理无值传递的
id
,则可以将其压缩为一条规则:

# Links to categories with optional pagination
RewriteRule foo/([^/]*)(?:/([^/]+))?/? foo.php?cat=$1&id=$2

谢谢Tim前两个很好:)…遗憾的是,第二个选项“链接到具有可选分页的类别”没有,但是hey ho