古いサイトの URL (末尾が .aspx/asp で数百個) を新しいサイト (末尾が .jsp/servlets) に移行する必要があります。この移行を Apache で使用RedirectMap
し、実装することを選択しました。RedirectRule
プレーンな URL は正常に機能しています。ただし、ソース URL の大文字と小文字が区別されるため、PAGENOTFOUND にリダイレクトされます (たとえば、/magazine/Magazine.aspx?Id=4はhttp://mydomain.com/advice/beautyPAGENOTFOUND
ではなくにリダイレクトされます)。
別の問題は、クエリ文字列を使用してソース URL をリダイレクトできないことです (たとえば、/Help/Help.aspx?HelpID=6はhttp://mydomain.com/services/essential-infoPAGENOTFOUND
ではなくにリダイレクトされます) 。 .
サンプルの redirectmap テキスト ファイルを以下に示します。
/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]