2016-11-24 97 views
0

我有两个重写规则麻烦在我的htaccess麻烦与2重写规则

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]时,我访问第二个重写片,但是lg=viewauthor.php而不是lg=en

+0

他们不相似,他们是完全一样的。您不能从同一请求路由到2个不同的页面。你需要别的东西来区分它们,为什么不用'/ author /'和'/ book /'开始作者? – Walf

+0

感谢您在作者或书籍开始时对其作品的回应,但是。在我的脚本中,我不能由作者或书籍开始,我需要先使用lg变量。另一个想法。 – timimi

回答

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] 

现在使你的网址,像/author/foo/far/faz/1/book/boo/bar/baz/2。请注意添加了B标志。

+0

感谢所有我解决我的问题:RewriteRule ^(。*)/ author /(。*)/([0-9] +)/?$ viewauthor.php?cat = author&lg = $ 1&nom = $ 2&id = $ 3 RewriteRule ^(。*)/ book /(。*)/([0-9] +)/?$ viewbook.php?lg = $ 1&cat = book&miw = $ 2&id = $ 3再次感谢 – timimi

+0

好,只是感谢人们,这就是upvotes /接受答案。 – Walf

+0

我已经做到了。 – timimi