我刚刚更新了,我目前正在Apache的htaccess文件中设置所有301重定向。所有重定向都使用当前格式。
Redirect 301 /old+url+4343/ http://www.newsite.com/new-url-here/
但是我注意到很多旧网址都有一些编码 - 主要是标题问题。 Apaches htaccess似乎忽略了编码或只是失败而没有做任何事情。例如,这不起作用;
Redirect 301 /old+question+title%3F/ http://www.newsite.com/new-question-title%3F/
在这种情况下,%3F应该是问号(?)。如果我复制并粘贴网址,我可以正常访问该网站 - 这很好。
我也尝试在htaccess中设置Charset以查看是否有效但不幸的是它没有,这就是代码;
AddDefaultCharset UTF-8
关于为什么Apache会忽略url编码以及如何覆盖它的任何想法?
答案 0 :(得分:0)
Redirect
指令非常有限,最好将RewriteRule
用于正则表达式功能和NE
之类的标记:
RewriteEngine On
RewriteRule ^old\+question\+title\x3F/ /new-question-title\%3F/ [L,NC,NE,R=302]