我目前正在开发一个由之前的开发人员构建的网站。
此网站之前已向订阅者发送链接,其中包含url文件名中的空格,例如http://website.com/docs/this is a pdf.pdf
。我现在已经修复了这些链接,因为它们是在生成链接时使用php url编码生成的,因为特别是Internet Explorer用户没有在linux服务器上找到该文件,因为文件名中有空格(chrome和FF通过正确插入工作) %20进入网址中的空格。)
我正在尝试找到一种方法来使用.htaccess来重写这些包含空格的网址,以重定向到正确的网址。例如,如果用户要求http://website.com/docs/this is a pdf.pdf
,则.htaccess将重定向到http://website.com/docs/this%20is%20a%20pdf.pdf
。请注意,此服务器上有数千个文档,因此需要保持动态。
我做了什么?
我查看了this和this以及其他内容,但无法添加更多链接,因为SO说我没有足够的声誉。
这些选项似乎表明,如果您事先知道文件名是什么,就有可能。我需要这是动态的。那里有人有什么想法吗?
答案 0 :(得分:0)
将空格转移到大括号内,例如..
RewriteRule ^(.+)(\ )(.+)(\ )(.+)(\ )(.+)\.pdf /$1-$3-$5-$7.pdf
会捕获“任意四个字的文件.pdf”的任何请求,并将其重写为/any-four-word-file.pdf
; o)Cor