Windows Server の「.htaccess」と 550 FTPエラー

Windows Server 2003Apache / MySQL をインストールしてWebサイトを構築していたところ、このサーバに置いた「.htaccess」が他の端末からFTPで取得できない、という症状に出会してハマったのでメモ。

FTPのファイルリストからは「.htaccess」が見えるのだが、GETしようとすると以下のエラーがでて失敗してしまう。ちなみに、FTPサーバはIISで構成している。

550 .htaccess: The system cannot find the file specified.

FTPクライアントソフトを変えてみたり、FTPコマンドで試してみたりしてもダメ。Webで検索すると「権限がない」らしいということがわかったのだが、Windowsのファイル権限はFTPでは変更できないので、次回そのサーバを直接触れる機会までひとまずおあずけ。

実機を見て、一目でその原因がわかった。「.htaccess」が「隠しファイル」になっていた。ファイルのプロパティから「隠しファイル」のチェックを外したところ、問題なくFTPでGETできるようになった。

一般的に「.」から始まるファイルはシステムが使うファイルだったりするので、CD-ROMからコンテンツをコピーした際に、どうやらそのようになってしまったらしい。

という訳で、上記のようなエラーが出た際は「隠しファイル」になっていないかどうか、確認いただくといいと思います。