スキップしてメイン コンテンツに移動

appspot.com から独自ドメインへの転送


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つに分ける等してください。