WordPress将文件重写到新模板

时间:2018-08-02 14:29:28

标签: php wordpress .htaccess redirect mod-rewrite

我有一个包含一系列PDF的站点,现在这些PDF可以交换为具有相同内容的适当页面。页面模板已创建,我现在尝试设置重写,以便所有先前的PDF链接都将重定向到相关页面,但是链接的版本也允许访问原始PDF。 / p>

我正在使用的当前解决方案如下:

  1. 采用原始URL,301将其重定向到新结构,其格式是我创建的新Wordpress页面,然后是PDF文件名
  2. 使用Wordpress add_rewrite_rule将该URL转换为Wordpress可以处理的格式,并将字符串的第二部分作为参数使用,以获取页面内容。

示例:

原始网址:http://example.com/files/pdf/filename.pdf

  1. 301重定向到: http://example.com/pdf/filename.pdf

  2. Wordpress使用它的重写规则来处理文件名,为用户提供以下服务: http://example.com/index.php?pagename=pdf&pdf=filename.pdf

以上内容当前有效,但是我无法创建一个规则,该规则将允许访问.htaccess或主题中的原始URL。我需要这样做,以便用户可以从新的PDF页面下载原始PDF。

工作部分:

.htaccess:

RewriteRule ^files/pdf/(.*.pdf)$ /pdf/$1 [NS,L,R=301]

主题:

add_rewrite_rule('pdf/(.*.pdf)$','index.php?pagename=pdf&pdf=$matches[1]','top');

尝试下载选项:

add_rewrite_rule('download/(.*.pdf)','files/pdf/$1','top');

实际上,发生的情况是download/filename.pdf URL正在重新解析为/pdf/filename.pdf URL,因为重定向似乎是回环。我尝试了LNS标志的组合都无济于事。

我不确定这是否完全是正确的方法,但是可以提供任何帮助。

最后,如果可能的话,我希望能够将301部分包含在Wordpress中,这样就不需要手动进行htaccess编辑,但是我的研究表明这是不可能的。

谢谢!

0 个答案:

没有答案