LoginSignup
1
0

SynologyのNASで.htaccessが効かなかったの原因を調べて対応した

Last updated at Posted at 2023-05-24

SynologyのNASでWebサービスを使おうとして、.htpasswdと.htaccessを設置したが、IDとパスワード入力画面が表示されず、指定したファイルの内容が表示されてしまいました。この原因を調べて対処した記録です。

【設定内容】

  • パッケージセンターから「Web Station」をインストール
  • 「Web Station」を[開く]で[Webポータルサービス]選ぶ
  • [作成]で[仮想ホスト]を選び、ポータルタイプを「名前ベース」ホスト名にアクセスするときのドメイン名を入力
  • [次へ]でドキュメントルートに共有フォルダとしているディレクトリを選択、HTTPバックエンドサーバにApache HTTP Server 2.4を選択
  • ドキュメントルートに、Basic認証のための.htpasswdと.htaccessを置いた

【現象】

ブラウザからアクセスしたが、IDとパスワードの入力画面が表示されない。

.htaccessが動作しているのか確認するために、.htaccessの記述を

Options Indexes

だけに変更して、デイレクトリにアクセスしてみると、「403 この要請を処理している間にエラーが発生しました」
スクリーンショット 2023-05-24 10.34.36.png

【調査と結果】

403は「閲覧禁止状態」なので、ディレクトリ一覧の表示は許可されていない、.htaccessでの指定が効いていない。
この原因は、自前のLinuxサーバならApacheのconfを考えるところだが、NASの場合confファイルは自分では設定指定ので、Web StationなどGUIで設定したどこかに漏れがあったと考える。

Web Stationの[Webサービスポータル] タブに移動すると画面の右側は「デフォルトポータル」と「ユーザ定義のポータル」があるが、デフォルトポータル」の方を選んで[編集]をクリックすると、[HTTPバックエンドサーバ]の項目がある。
スクリーンショット 2023-05-24 10.46.14.png
スクリーンショット 2023-05-24 10.46.27.png

ここが[Nginx]になっていたので[Apache2.4]に変更した。
この結果.htaccessが機能するようになった。
動作しているWebサーバがNginxなのに、.htaccessにはApacheの記述がだったことが原因だった。

そりゃそうですね、という原因で約2時間悩みました。

でも、HTTPバックエンドサーバにApache HTTP Server 2.4を選択しているので、デフォルト サーバの方の設定が影響しているとはなかなか気が付きませんでした。

【権限】    

追記
.htpasswdと.htaccessの所有者とアクセス権をどうするかですが、“結果論”ですが試行錯誤の末にこうしました。

-rw----r--  1 http     http  180 May 24 16:22 .htaccess
-rw-------  1 http     http   24 May 24 15:30 .htpasswd

所有者はgrepでそれっぽいアカウントを探しました

$ grep  -e http -e pache /etc/passwd
http:x:1023:1023::/var/services/web:/bin/false

【補足】

「Synology NAS .htaccess 403」で検索すると、(機械翻訳っぽい)SynologyナレッジセンターのQ&Aがヒットするが、参考になりませんでした。

1
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
1
0