0

我目前正在开发由以前的开发人员构建的网站。该网站之前已向订阅者发送链接,其中 url 文件名中有空格,例如http://website.com/docs/this is a pdf.pdf. 我现在已经修复了这些链接,因为它们是在生成链接时使用 php url 编码生成的,因为特别是 Internet Explorer 用户没有在 linux 服务器上找到该文件,因为文件名中有空格(chrome 和 FF 通过正确插入%20 到 url 中的空格中)。

我目前正在尝试找到一种方法来使用 .htaccess 重写这些包含空格的 url 以重定向到正确的 url。例如,如果用户请求http://website.com/docs/this is a pdf.pdf.htaccess 将重定向到http://website.com/docs/this%20is%20a%20pdf.pdf. 请注意,此服务器上有数千个文档,因此它确实需要是动态的。

我尝试了什么?

我已经查看了这个这个以及更多,但无法添加更多链接,因为 SO 说我没有足够的声誉。

这些选项似乎表明,如果您事先知道文件名是什么,这是可能的。我需要这是动态的。有没有人有任何想法?

4

1 回答 1

0

例如,将转义的空格放在大括号内。

RewriteRule ^(.+)(\ )(.+)(\ )(.+)(\ )(.+)\.pdf /$1-$3-$5-$7.pdf

将捕获对“任何四个单词 file.pdf”的任何请求并将其重写为 /any-four-word-file.pdf

;o) 心电图

于 2013-08-19T12:15:03.130 回答