0

我想在 htaccess 中为以下 URL 创建 URL 重写规则。

http://example.com/vedios/category/fun/ -> http://example.com/vedios/category.php?cat=fun

http://example.com/vedios/category/fun/?show=popular -> http://example.com/vedios/category.php?cat=comedy&show=popular

http://example.com/vedios/category/fun/?show=popular&page=2 -> http://example.com/vedios/category.php?cat=comedy&show=popular&page=2

http://example.com/vedios/category/fun/comedy/ -> http://example.com/vedios/category.php?cat=comedy

http://example.com/vedios/category/fun/comedy/?show=popular -> http://example.com/vedios/category.php?cat=comedy&show=popular

http://example.com/vedios/category/fun/comedy/?show=popular&page=3 -> http://example.com/vedios/category.php?cat=comedy&show=popular&page=3

我试过但它不起作用RewriteRule category/([^.]+)/?([^.]+)$ /vedio/category.php?cat=$1&$2http://example.com/vedio/category.php?cat=fun&show=popular&page=1

请告诉我上述要求的正确 URL 重写规则是什么?

4

2 回答 2

4

该查询不是在RewriteRule指令中检查的 URL 路径的一部分。你需要一个RewriteCond指令来做到这一点。

但是您只需要设置QSA 标志即可将初始查询字符串附加到新的查询字符串:

RewriteRule category/([^.]+)/$ /vedio/category.php?cat=$1 [QSA]
于 2009-07-06T10:28:21.453 回答
0

我的类别脚本的正则表达式:

/vedio/category/([^.]+)/\?([^.]+)$

这取决于 mod_rewrite 是评估您的所有 URL(服务器 + 端口 + 路径)还是仅评估脚本的路径。

于 2009-07-06T10:22:01.513 回答