0

我的 htaccess 中有两个 Rewriterule 有问题

RewriteRule ^(.*)/(.*)/(.*)/([0-9]+)/?$ viewauthor.php?lg=$1&cat=$2&nameauthor=$3&id=$4 [NC,L]
RewriteRule ^(.*)/(.*)/(.*)/([0-9]+)/?$ viewbook.php?lg=$1&cat=$2&namebook=$3&id=$4 [NC,L]

我无法访问第二个重写因为它是相似的。
看看我在哪一页。我放echo $_SERVER['QUERY_STRING'];了那两页。

当我删除标志[NC,L]时,我访问了第二个 rewriterule ,lg=viewauthor.php而不是lg=en

4

1 回答 1

0

您需要一个前缀来区分但您不捕获它,它只是用于匹配规则:

RewriteRule ^author/(.*)/(.*)/(.*)/([0-9]+)/?$ viewauthor.php?lg=$1&cat=$2&nameauthor=$3&id=$4 [B,NC,L]
RewriteRule ^book/(.*)/(.*)/(.*)/([0-9]+)/?$ viewbook.php?lg=$1&cat=$2&namebook=$3&id=$4 [B,NC,L]

现在让你的 URL 像/author/foo/far/faz/1/book/boo/bar/baz/2。注意B标志的添加。

于 2016-11-24T21:30:05.473 回答