0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ページ遷移してもURLが変わらないタイプのサイトから各ページのURLを取得する方法

0
Last updated at Posted at 2025-08-22

ページ遷移してもURLが変わらない系のサイトの場合、 シングルページアプリケーション(SPA)サーバーサイドのフレーム埋め込み型 である可能性があるとのこと

指定のページへ直で飛ぶリンクが簡単に取得できなくて不便だったので、どうにか直で飛べるURLを取得できないか調べてみた

SPAとは?
https://qiita.com/shinkai_/items/79e539b614ac52e48ca4

🔎 ページ単位のリンク取得可否の判断

  1. アンカー(#ハッシュ)やクエリパラメータを利用している場合

    • 例: ?page=2#section3 のように、URLの末尾に識別子が付与されている場合は、そのURLをリンクとして利用可能です。
  2. サーバー側で内部的に画面を切り替えている場合(URLに変化がない)

    • ブラウザのアドレスバーは常に同じURLのままです。
    • この場合は以下の手順で確認してください。
      • 開発者ツールの「ネットワーク」タブを開き、ページ切り替え操作を行う
      • その際に送信されるリクエストを確認し、pageIdscreenId など画面を識別するパラメータ付きのURL(例:STRHeadPage.do?pageId=123)があれば、それを直リンクとして利用できる可能性があります。
  3. 完全にセッションや JavaScript 内部状態で制御している場合

    • URL自体ではページを直接指定できず、リンクとして利用できません。
    • この場合はログイン後にメニュー操作や画面遷移を経ないと目的のページに到達できません。

👉 要するに、URLの末尾に「ページを区別できる要素」があるかどうか を確認するのがポイント

🔎 ページ単位リンクが取れるか確認する手順

  1. ページを開く
    例:https://examle.jp/h2/STRHeadPage.do

  2. 開発者ツールを開く
    Windows: F12 または Ctrl+Shift+I
    Mac: ⌘ + Option + I

  3. [Network] タブに切り替える

  4. ページ切り替え操作をする(メニュークリックや次の画面に進む操作)

  5. Networkに出てきたリクエストを確認
    もし
    ・STRHeadPage.do?pageId=123
    ・STRHeadPage.do?screenId=xxx
    みたいな パラメータ付きURL が出ていれば、それが直リンク候補です。

  6. Request Method を見る
    GET → URLを直接開ける可能性あり(リンク化できる)。
    POST → hiddenフォームやセッション依存。URLだけでは開けないことが多い。

GETの場合、REQUEST URLを使用!
image.png

そもそもシングルページアプリケーション(SPA) 、フレーム埋め込み型のウェブサイトとは?

項目 シングルページアプリケーション(SPA) サーバーサイドのフレーム埋め込み型 普通のウェブサイト(マルチページ)
URLの変化 基本的に1つのURLで、画面はJSで書き換え。
(ただしhistory.pushStateでURL風に見せられる)
親フレームのURLは固定。中のフレームは切り替わってもURL変化なし。 ページごとにURLが変わる。
戻る/進む操作 実装次第で動く。SPAが対応していればOK、未対応なら使いづらい。 ブラウザの戻るは使えるが、ページ内の戻るはフレームごとで制御が難しい。 標準的にブラウザの戻る/進むで遷移可能。
メリット - ページ全体リロードなしで高速。
- モバイルアプリ的な体験。
- 動きがリッチにできる。
- メニューなど共通部分を再描画せず使える。
- 昔ながらの業務システムで安定。
- URLごとに直リンク・ブックマーク可能。
- SEOに強い。
- シンプルで互換性高い。
デメリット - 初回ロードが重い。
- SEOが弱い(対策必要)。
- 複雑で開発コスト高い。
- URL共有が困難(右フレームだけ直リンクするとメニューが消える)。
- スマホやモダン環境で使いにくい。
- 古い仕組み。
- ページ遷移のたびに全体リロードで遅い。
- 共通UIも毎回ロードされる。
向いている用途 - SNS、チャット、管理画面など操作頻度が高くリッチなUIが必要な場合。 - レガシーな業務システム(イントラ、帳票系)で画面を小分けに管理したい場合。 - 企業サイト、ブログ、ECなど一般的な情報サイト。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?