我想要的是什么:
301重定向/file_new.pdf到 / file new.pdf(%20又名之间的空格 文件和新)
我知道:
但是,我个人很好奇如何做到这一点。这是我到目前为止所做的:
Redirect 301 /file_new.pdf http://sitename.com/file\ new.pdf
调用configtest时,conf文件解析器会抛出错误:
重定向需要两个或三个参数, 可选状态,然后是文档 被重定向和目标网址
编辑:显然mod_rewrite和Redirect 301方法对我有用,可能是因为无论出于什么原因他们没有申请,因为该文件实际存在于该位置。
<VirtualHost *:80>
DocumentRoot /www/sitename_com
ServerName site.local
Options -MultiViews
RewriteEngine on
Redirect 301 /pdf/file_new.pdf http://site.local/pdf/file%20new.pdf
RewriteRule ^/pdf/file_new.pdf http://site.local/pdf/file\ new.pdf
RewriteLog "/www/rewrite.log"
</VirtualHost>
在rewrite.log中,它尝试将模式与每个相应的uri / http请求进行匹配。我认为有些东西在它甚至到达mod_alias / mod_rewrite之前就已经控制了。
总而言之,它直接转到浏览器中的file_new.pdf而不是301.我很肯定alias
和rewrite
已启用。我的apache版本是2.2。
答案 0 :(得分:5)
Redirect
实际上是mod_alias的一部分,而不是mod_rewrite。我很高兴%20工作,你也可以使用引号告诉apache包含空格的路径是重定向到的URL而不是两个单独的项目:
Redirect 301 /pdf/file_new.pdf "http://site.local/pdf/file new.pdf"