根据是否使用QueryStrings,使用不同的RewriteRule?

时间:2012-07-12 00:38:52

标签: .htaccess mod-rewrite

在我的博客上(我正在重新设计以更有效地显示内容的方式),我有一个RewriteRule设置来处理从

的简单重定向

http://new.kn3rdmeister.com/blog.php

http://new.kn3rdmeister.com/category/blog/(也可以倒退)

在.htaccess中:

RewriteEngine On
RewriteRule ^blog\.php$ /category/blog/ [R=301,L]
RewriteRule ^category/blog/?$ blog.php [L]
...

这只是花花公子。现在我想做的是重写

/blog.php?pagenum=x

/category/blog/page/x/

在.htaccess中:

...
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ blog\.php\?pagenum=([0-9]*)\ HTTP/
RewriteRule ^blog\.php$ /category/blog/page/%2/ [R=301,L]
RewriteRule ^category/blog/page/([0-9]+)/$ blog.php [L]

我可以开始工作的第一条规则最终起作用了,但它显示的是QueryStrings而不是那么干净的页面目录,就像这样......

/blog.php?pagenum=2例如等于

/category/blog/?pagenum=2

我希望我的问题足够明确:/如果您需要澄清任何内容,请询问并更新我的帖子。提前谢谢。

1 个答案:

答案 0 :(得分:0)

在RewriteRule中向目标末尾添加问号:

RewriteRule ^blog\.php$ /category/blog/page/%2/? [R=301,L]