トラブルシュート

リンク先が別ドメインに飛ぶときの原因と直し方

共有したHTMLをクリックすると、意図しない別ドメインに飛んでしまう——このトラブルはAI生成HTMLで特に起きやすく、原因の大半はHTMLソース内の`href`や`form action`にハードコードされた外部URLです。発生パターンを把握し、手順通りに修正すれば短時間で解消できます。

よくある原因

最も多いのは、AIがサンプルとして生成した`<a href="https://example.com/">`のようなプレースホルダURLをそのまま残してしまうケースです。ページ上では見た目が正しく見えても、クリック先が外部サービスになっているため、レビュー相手が混乱します。

`<form action="https://formspree.io/f/xxxx">`のようにフォーム送信先がサードパーティに向いている場合も別ドメイン遷移として報告されます。AIはフォームの動作例として外部サービスのURLを挿入することが多く、共有前に必ず確認が必要です。

  • 相手がログインなしで開ける状態か確認する
  • PCとスマホで最低1回ずつ表示を確認する
  • 内部情報・個人情報・不要な外部送信が残っていないか見る
  • レビュー期限と修正時の差し替え方を決めておく

自分側で確認すること

HTMLファイルをテキストエディタで開き、`href=`と`action=`を全文検索します。`http://`または`https://`で始まるURLがあれば、それが自分のドメイン以外でないかを一件ずつ確認してください。VSCodeなら「検索」パネルで`href="http`と入力すると一括で洗い出せます。

修正後はブラウザの開発者ツール(F12→Networkタブ)を開いた状態で各リンクをクリックし、リクエスト先が意図したURLになっているかを目視で追います。リダイレクトが挟まる場合は302/301の行を展開して最終遷移先を確認します。

  • HTML内の外部script・form action・iframeを確認する
  • APIキーやトークンらしき文字列がないか検索する
  • 画像・CSS・JSのパスが公開後も解決できるか見る
  • noindexと認証を混同せず、必要なら両方設定する

相手側で確認すること

相手が別ドメインに飛ぶと報告してきた場合、まず「どのリンクをクリックしたか」と「遷移先のURLを教えてもらえますか」を確認します。スマホのブラウザはリダイレクト先URLを省略表示することがあるため、PCのChrome/Firefoxでも試してもらうと正確な情報が得られます。

相手環境でのみ発生する場合、ブラウザの拡張機能(リダイレクター系)が干渉していることがあります。シークレットモードで同じリンクを踏んでもらい、再現するかどうかを切り分けてもらうよう依頼しましょう。

  • HTML内の外部script・form action・iframeを確認する
  • APIキーやトークンらしき文字列がないか検索する
  • 画像・CSS・JSのパスが公開後も解決できるか見る
  • noindexと認証を混同せず、必要なら両方設定する

再発防止の運用

AIにHTMLを生成させる際、プロンプトの末尾に「外部ドメインへのリンクは一切含めないこと。`href`はすべて`#`か相対パスにすること」と明記すると、プレースホルダURLの混入を大幅に減らせます。生成後も`grep -r 'href="http' .`で確認する習慣をつけましょう。

ギガサイト便でHTMLをアップロードする前に、ローカルで`python -m http.server 8080`を使って動作確認するのが有効です。本番URLに上げる前に全リンクを1クリックずつ確認するステップを運用フローに組み込んでおくと、共有後のトラブルを防げます。

  • HTML内の外部script・form action・iframeを確認する
  • APIキーやトークンらしき文字列がないか検索する
  • 画像・CSS・JSのパスが公開後も解決できるか見る
  • noindexと認証を混同せず、必要なら両方設定する

よくある質問

リンクが飛ぶ先はどうやって素早く特定できますか?

Chrome開発者ツールのNetworkタブを開いた状態でリンクをクリックすると、遷移先URLがリクエスト一覧に表示されます。フィルターに「Doc」を選ぶとページ遷移だけ絞り込めます。

フォームのaction属性を空にしたらエラーになりますか?

action属性を空文字(`action=""`)にすると現在のURLにGETまたはPOSTが送られます。デモ用で送信不要なら`onsubmit="return false;"`を追加し送信を無効化するのが安全です。

修正してアップロードし直しても相手のブラウザに古いページが表示されるのはなぜですか?

ブラウザキャッシュが残っているためです。相手にCtrl+Shift+Rでハードリロードを依頼するか、ギガサイト便で新しいURLを発行して共有し直すと確実に反映されます。

関連記事

トラブルシュート

外部API呼び出しがCORSで失敗するときの原因と直し方

外部APIへのfetchがCORSエラーで弾かれて困っている開発者・制作者向け。ブラウザ側とサーバー側それぞれの原因と、プリフライトリクエストの仕組みを踏まえた具体的な修正手順を解説します。

5分で読める
「トラブルシュート」の記事をもっと見る →