Apache重写规则冲突

我正在研究Apache 2.4中的一个重写规则,其中任何以.pdf /结尾的URL都应该添加一个查询参数并将其转换为.pdf?q ​​= pdf。

例如: http : //www.example.com/us/elections.pdf/应该转换为http://www.example.com/us/elections.pdf?q=pdf

我试图使用下面的规则,它的工作

RedirectMatch 301 ^(。*)。pdf / $ 1.pdf?q ​​= pdf

问题是我们也有一些像{hostname} /us/elections.pdf/ node /img.thumbnail.png

为此,上面的规则是在节点之前添加q = pdf并像{hostname} /us/elections.pdf?q=pdf_node_/img.thumbnail.png

我怎样才能避免这种情况发生?

我怎样才能改变我的规则,使其只适用于.pdf /最后的链接?

任何帮助将是伟大的。

如果你希望你的正则expression式匹配只有以“.pdf /”结尾,那么你应该相应地编写正则expression式,并包含string锚点的结尾。

更改:

RedirectMatch 301 ^(.*).pdf/ $1.pdf?q=pdf 

至:

 RedirectMatch 301 ^(.*).pdf/$ $1.pdf?q=pdf 

注意正则expression式的结尾处的$