Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Apache用空格重写URL_Php_.htaccess - Fatal编程技术网

Php Apache用空格重写URL

Php Apache用空格重写URL,php,.htaccess,Php,.htaccess,我目前正在开发一个由以前的开发人员创建的网站。 此网站以前曾向url文件名中带有空格的订阅者发送链接,例如http://website.com/docs/this 是一个pdf.pdf。我现在已经修复了这些链接,因为它们是在生成链接时使用php url编码生成的,因为internet explorer用户在linux服务器上找不到文件,因为文件名中有空格(chrome和FF通过将%20正确插入url中的空格来工作) 我目前正试图找到一种使用.htaccess重写这些url的方法,这些url中有空

我目前正在开发一个由以前的开发人员创建的网站。 此网站以前曾向url文件名中带有空格的订阅者发送链接,例如
http://website.com/docs/this 是一个pdf.pdf
。我现在已经修复了这些链接,因为它们是在生成链接时使用php url编码生成的,因为internet explorer用户在linux服务器上找不到文件,因为文件名中有空格(chrome和FF通过将%20正确插入url中的空格来工作)

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

我试过什么?

我看了很多,但不能添加更多的链接,因为这么说我没有足够的声誉


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

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

RewriteRule ^(.+)(\ )(.+)(\ )(.+)(\ )(.+)\.pdf /$1-$3-$5-$7.pdf
将捕获对“any-four-word-file.pdf”的任何请求,并将其重写为/any-four-word-file.pdf


);o) Cor

在哪些情况下,哪个IE版本会出现此问题?问题请求到底是什么样子的?如果IE不发送带有正确编码URI的请求,那么浏览器可能会查找类似
/docs/this
的片段。您在哪个版本的IE上测试过它?因此,请使用“?”字符对每个部分进行可选。。(.+)? ;o) Cor