我有以下modrewrite规则:
RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^blog/([^/]*)/([^/]*)/$ /blog.php?date=$1&title=$2 [L]
这是非常简单的。 我的问题是,如果没有variables列出,我如何得到这个重写指向blog.php ?
如果没有variables存在,blog.php将写入文档列表,如果存在variables,也创build单独列表。
编辑: blog.php工作正常,没有国防部重写。 如果我去http://host/blog.php它列出我所有的文章。 如果我去http://host/blog/2010-10-05/blog-title/它会显示我的单个条目。 同样,如果我去http://host/blog.php?date=2010-10-05&title=blog-title我得到一个单一的条目。 不过,我想要http://host/blog/列出我的所有条目。
我想问题是:这是否需要第二个重写规则? 如果是这样的话,我怎样才能让这两个人打得好呢?
从评论谈话,你去;)
RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(blog|blog/)$ /blog.php [L] RewriteRule ^blog/([^/]*)/([^/]*)/$ /blog.php?date=$1&title=$2 [L]
博客本身就是第一个,所以如果用户input了博客或博客/它将去blog.php并停在那里,如果这个要求不符合它将移动到第二个规则。
(blog|blog/)$
$用于防止博客匹配blog.html或其他任何东西。
| 是作为运营商使用或所以如果是博客或博客/
[L]表示最后,所以如果规则满足,其后的规则将不予考虑。