没有运气用查询字符串重写url

时间:2013-11-14 03:05:11

标签: .htaccess mod-rewrite url-rewriting

我的wordpress网站运行一个下载监视器插件(旧版本),该插件使用查询字符串生成URL,例如: example.com/blog/download/?did=1(数字是递增的)

我想使用WP Super Cache插件超级缓存这些页面,似乎只有在URL不包含查询字符串时才有可能。

我认为最好重写:

example.com/blog/download/?did=1

example.com/blog/download/did/1

(我不确定是否应该在URL的末尾添加斜杠)

我参考了这个网站的一些例子,我得到的最接近的是以下重写规则,但不起作用。

RewriteCond %{QUERY_STRING} ^did=([0-9]*)$
RewriteRule ^.*$ /download/did/%1? [NE,R]

有人可以指出我错过了什么让这次重写工作?感谢。

1 个答案:

答案 0 :(得分:0)

只将带有查询字符串的URI重写为没有的URI。 wordpress插件可能不会理解。你需要在内部重写它:

RewriteCond %{THE_REQUEST} \ /blog/download/?\?did=([0-9]+)
RewriteRule ^ /blog/download/did/%1? [L,R=301]

RewriteRule ^blog/download/did/([0-9]+)/?$ /blog/download/?did=$1 [L,QSA]