見出し画像

SynologyNASでのWebサーバでディレクト内のファイルを一覧表示したい

ローカルに保存したhtmlファイルをあれこれしたいときに、ローカル保存から開くとChrome拡張機能が適用できなかったりする。
なので、SynologyのNASがWebサーバ機能を持っているので、ここにファイルを放り込めば見えるかな、と思ったのだが、ちょっと苦戦(?)したのでメモ。


ディレクトリリスティングを許可する

以前、IISで同様のことをやっていたときには、IISマネージャからサーバに対して「ファイルの一覧を許可する」(みたいなやつ)をオンにしておけば、わざわざindex.html等の既定のHTMLファイルを置いてファイル群を記述したり、ASPやCGI等で動的な生成プログラムを組むまでもなく、ブラウザから当該ページを開けば勝手に一覧表示がされて便利だった。

同じことがSynologyのNASでもできないかな、と思い。
まずはとりあえずhtmlを放り込み、ブラウザでアクセスしてみた。


まぁできないよね。

予想どおりではあるけど、一覧は残念ならが出てこない。

とすると、どこかから設定できそうなもの。
Synologyの管理画面にログインして、Webステーションの設定を色々見てみるが、どうにもそれっぽい項目が見当たらない。


それっぽい項目は見当たらない

結論から言うと、「.htaccess」ファイルを作る(Apacheの場合)が正解だった。
IISのときのクセで、てっきり管理コンソール的なところから設定すると思い込んでいたが、そもそもお作法が違っていたらしい。

Googleで検索してもそれっぽい情報がなかなか出てこず(=作法を間違って認識して検索していたので)、結局例によってChatGPTに頼ったらズバッと解決し、上記の勘違いの解消も含め「なるほどねー」だった。


ChatGPTによる回答を抜粋

ChatGPTの回答による.htaccessの記述は次の通り。
Apacheはまるっきり素人なので、意味は現時点ではよくわかっていないけど、とりあえずこの通り作成。

Options +Indexes
IndexOptions FancyIndexing

先ほどのディレクトリに.htaccessを放り込み、再度ブラウザでアクセスすると、見えるようになっていた!


ディレクトリが自動表示された様子

ところでこれ、「ディレクトリリスティング」と言うんですね。
今更知りました。

ユーザごとのWebサーバと全体Webサーバ

全く違う話だけど、今回もユーザごとのWebサーバと全体Webサーバ、どちらをいじっているか途中良くわからなくなってしまったりした。

全体Webサーバの実体は、NASの直下の「web」フォルダ。
ユーザ個別のWebサーバ(パーソナルウェブサーバと言うらしい)は、ユーザごとのHomeフォルダにある「www」。

ブラウザでNASのIPアドレスを開きに行くと見えるのは、全体共通のWebサーバ。(「web」フォルダの方)
じゃあ、ユーザ用って、どうやって見るのか?と思ったら、次の通りらしい。

上述の手順を完了すると、各ユーザーに以下の様な固有のウェブサイト アドレスが与えられます:
ローカル ユーザー:「NAS の IP アドレス/~ユーザー名/」または「NAS のホスト名/~ユーザー名/」例:
192.168.1.1/~ken/
kenstation/~ken/

で。このとき「~ユーザ名」の部分について、大文字・小文字の違いも認識されるので注意。
ユーザ名と完全に一致させないといつまでも404エラーが返ってきて「あれぇ?」となる。というか、なった。


いいなと思ったら応援しよう!