App Engine で appspot.com で公開していたサービスを
独自ドメインに移転したら
appstpot.com→独自ドメインへの自動転送をしたくなることがある。
これはその時のコード。
まず単純な転送メソッド。
SC_MOVED_PERMANENTLYは完全に移転しました、という意味。
private void move(HttpServletResponse resp, String url) throws IOException {
resp.setHeader("Location", url);
resp.sendError(HttpServletResponse.SC_MOVED_PERMANENTLY);
}
そして実際の転送。
ほにゃらら.appspot.com→ほにゃらら.comへ移転する例。
サーブレットの最初に記述。
private static final String OLD_HOST = "ほにゃらら.appspot.com";
private static final String NEW_HOST = "ほにゃらら.com";
String uri = req.getRequestURI();
String url = req.getRequestURL().toString();
if (url.startsWith("http://" + OLD_HOST + "/") || url.startsWith("https://" + OLD_HOST + "/")) {
move(resp, "http://" + NEW_HOST + uri);
return; // 忘れないこと
}
// 以降にほにゃらら.comの通常処理
これで appspot.com にアクセスされた場合に
独自ドメインの同一URIに転送できる。
HTTPSのときはHTTPSで転送したいという場合は
if文の処理を2つに分ける等してください。
if文の処理を2つに分ける等してください。