这是我的.htaccess:
...
rewriterule file%20name.htm http://mysite.com/new_name.htm#anchor [r=301,nc,ne]
...
它没有被重定向,我相信这是因为它没有以名称中的%20为目标。至于标志,我使用ne来不重写重定向的#anchor部分。
此外,标志“nu”打破了我的文件,我收到内部服务器500错误。
谢谢你。
答案 0 :(得分:2)
调用mod_rewrite
时,路径已经作为Apache请求处理的一部分进行了解码。所以,如果你想检查一个空格,你可以这样做:
RewriteRule file\ name\.html http://example.com/new_name.htm#anchor [R=301,NC,NE,L]
NU
标记doesn't exist,这就是您尝试使用它时出现内部服务器错误的原因。
答案 1 :(得分:0)
不是最好的答案,只能在特定情况下使用,但我改变了
file%20name.htm
到
file.*
所以它将匹配任何以“file”开头的文件名,无论空格和特殊字符。