我需要将我的旧站点 URL(以 .aspx/asp 结尾,有几百个)迁移到新站点(以 .jsp/servlets 结尾)。我们选择在 Apache 中使用RedirectMap
并RedirectRule
实现此迁移。纯 URLS 工作正常。但是源 URL 中区分大小写会导致重定向到 PAGENOTFOUND(例如,/magazine/Magazine.aspx?Id=4正在重定向到PAGENOTFOUND
而不是http://mydomain.com/advice/beauty)。
另一个问题是它无法使用查询字符串重定向源 URL(例如,/Help/Help.aspx?HelpID=6正在重定向到PAGENOTFOUND
而不是http://mydomain.com/services/essential-info) .
请在下面找到示例重定向映射文本文件。
/100001/Product.aspx http://mydomain.com/urlredirect/p100003
/100002/Product.aspx http://mydomain.com/urlredirect/p100005
/Help/Help.aspx?HelpID=6 http://mydomain.com/services/essential-info
/Help/Help.aspx?HelpID=11 http://mydomain.com/services/info-about-delivery-methods
/Magazine/Feature.asp?Id=816 http://mydomain.com/advice/all-about-you.asp
/Magazine/Magazine.aspx?Id=4 http://mydomain.com/advice/beauty
/Advive/all-about-you.asp http://mydomain.com/advice/beauty-in-you
用 Apache 编写的重定向代码
RewriteEngine on
RewriteMap text2id txt:/opt/webserver/apache/conf/redirectmap.txt
RewriteRule ^(.*\.(aspx|asp)) ${text2id:$1} [NC,R=301,L]