パソコン関連の書籍等を読んで試したりしながらアウトプットしまくります。

アウトプットしながら学ぶ

Windows

HTMLから参照できるファイルの仕組みと、IISで別サーバーの共有フォルダを公開する方法

投稿日:

目次

■ はじめに

HTML には <a><img> のように、外部ファイルを参照する方法がいくつもあります。

<a href="manual.pdf">PDFを開く</a>
<img src="image.jpg">

しかし、

  • あるファイルは参照できるのに、

  • 別の場所のファイルは参照できない

という経験をした人は多いはずです。

実は HTML が参照できるファイルには
明確な技術的ルール があり、
さらに応用すると
「Webサーバーとは別のサーバー上の共有フォルダ」を
Webサイトとして公開することすら可能
です。

この記事では、
HTML が参照できるファイルの仕組みと、
IIS(Internet Information Services)を使って
別サーバーの共有フォルダをWeb公開する方法 をまとめます。


【第1部】HTMLが参照できるファイルとは?


■ HTMLが参照できるかどうかを決めるのは「URLだけ」

まず大前提として:

✅ HTML が参照できるファイルは

http:// または https:// でアクセスできるファイルのみ

これが絶対ルールです。

ブラウザは HTML のリンクをクリックすると、

  • そのURLに対して

  • HTTP(またはHTTPS)のリクエストを送り

  • Webサーバーからファイルを取得して

  • 表示します

つまり、
Webサーバーが公開していないファイルは参照できません。


■ HTMLで参照できる “OK” な例

① Webサーバー上のファイル

https://example.com/docs/a.pdf

これはもちろんOK。


② 同じWebサイト内の相対パス

<a href="./a.pdf">
<a href="../manual/b.pdf">

これも Webサーバー上のファイルであるかぎりOK。


③ IISの仮想ディレクトリにあるファイル

物理フォルダはどこでも構いません。

/pdf/D:\PDF\
/docs/ → \\FileServer01\Share\Documents\

URL として公開されていれば参照可能です。


■ HTMLで参照できない “NG” な例

❌ ① Windows のファイルパス

C:\manual\file.pdf

→ ブラウザはサーバーのファイルシステムにアクセスできません。


❌ ② ネットワーク共有(UNCパス)

\\server\share\file.pdf

→ SMB(ファイル共有プロトコル)はブラウザが扱えません。


❌ ③ file:// URI

file:///C:/temp/file.pdf

→ 現代のブラウザはページからローカルファイルを参照することを制限しています。


■ 結論(基礎編)

✅ HTMLが参照できるのは「Webサーバーが公開しているURL」のみ
❌ OS上のパスや共有フォルダパスは参照できない


【第2部】実はできる:IISで「別サーバーの共有フォルダ」をWeb公開する

ここからが応用編です。

基礎の結論を見ると、

「共有フォルダのファイルをHTMLから直接開くのは不可能」

これは正しいのですが、実務ではこういう要求がよくあります。

  • ファイルサーバーに置いたPDFを

  • Webから参照させたい

  • でもファイルサーバーそのものにWebサーバーは入れたくない

  • 物理的に別マシン

こういうときに役立つのが IIS の “仮想ディレクトリ” です。


■ 仮想ディレクトリとは?

IIS には、URL と物理フォルダを自由にマッピングする仕組みがあります。

例:

https://web01.local/docs/

物理フォルダ: D:\Intranet\Docs\

これにより、
物理フォルダがどこにあっても、
IISがURLとして公開してくれます。


■ UNCパス(別サーバーの共有フォルダ)もマッピングできる

これが今回のキモ。

✅ 別サーバーの共有フォルダ(UNCパス)を

✅ IIS の仮想ディレクトリとして公開できる

設定例:

Alias: shared
Physical path: \\FileServer01\DeptPDFs\

こうすると、URL はこうなります:

https://web01.local/shared/a.pdf

つまり、

「Webサーバーとは別のマシンにある共有フォルダの中身」を
Webサーバー経由のURLとして参照できる。

これが本当に便利。


■ 構成イメージ

[File Server] (共有フォルダ)
└── \\FS01\DeptFiles\A.pdf

| UNCIISがアクセス)
|
[Web Server (IIS)]
└── 仮想ディレクトリ /shared/

https://web01.local/shared/A.pdf

HTMLから参照可能

■ 設定手順(実務向け)

✅ ① IISマネージャを開く

対象のWebサイト → 右クリック → 「仮想ディレクトリの追加」


✅ ② 物理パスに UNC を指定

\\FS01\DeptPDFs\

✅ ③ 認証の仕組みを決める

おすすめは:

  • 公開PDF:Anonymous

  • 内部限定PDF:Basic + HTTPS

  • 社内認証:Windows Authentication


✅ ④ IISから共有フォルダへのアクセス権を付ける

IISが使うアカウントに以下を付与:

  • 共有権限:Read

  • NTFS権限:Read

おすすめは、
Web公開専用のサービスアカウントを作成 して
アプリケーションプールの Identity に設定する方法。


✅ ⑤(必要なら)ダブルホップ問題に注意

Windows認証を使う場合のみ発生。
回避方法:

  • Kerberos SPN の登録

  • Constrained Delegation の設定

Anonymous や Basic 認証なら問題なし。


■ 使える場面(実務メリット)

  • PDFや画像などを置くだけでWeb公開したい

  • ファイルサーバー側の構成を変えたくない

  • 別部門の共有フォルダをWebサイトに統合したい

  • Webシステムとファイルサーバーを分離したい

  • Windows認証によるアクセス制御を付けたい

情シス・教育機関・病院・自治体など、
どこでも使える強力なテクニックです。


【まとめ】

✅ HTML が参照できるのは「Webサーバーで公開されたURLだけ」

❌ OSのパスや共有フォルダパスは参照できない

✅ しかし IIS を使えば

別サーバーの共有フォルダすら Web のURLとして公開できる

つまり、

どんな場所のファイルでも、
IISさえあればHTMLから参照できる形に“変換”できる。

ということです。







-Windows
-, , , , , , ,

Copyright© アウトプットしながら学ぶ , 2025 AllRights Reserved Powered by AFFINGER4.