Apache用空间重写网址

时间:2013-08-15 10:32:57

标签: php .htaccess

我目前正在开发一个由之前的开发人员构建的网站。 此网站之前已向订阅者发送链接,其中包含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。请注意,此服务器上有数千个文档,因此需要保持动态。

我做了什么?

我查看了thisthis以及其他内容,但无法添加更多链接,因为SO说我没有足够的声誉。

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

1 个答案:

答案 0 :(得分:0)

将空格转移到大括号内,例如..

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

会捕获“任意四个字的文件.pdf”的任何请求,并将其重写为/any-four-word-file.pdf

; o)Cor