Apache 有冲突的mod重写帮助
我希望能够在这两个mod-re-writes上使用foo这是我目前拥有的,并且工作正常: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
#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