Windows Server の「.htaccess」と 550 FTPエラー
Windows Server 2003 に Apache / 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からコンテンツをコピーした際に、どうやらそのようになってしまったらしい。
という訳で、上記のようなエラーが出た際は「隠しファイル」になっていないかどうか、確認いただくといいと思います。