mieki256's diary



2024/07/30(火) [n年前の日記]

#2 [linux][apache] テキストファイルがCGIとして扱われてしまって悩んだ

Webサーバ Apache2で公開しているディレクトリ内に、hoge.pl.txt や hoge.cgi.txt を置くと、何故か CGI として扱われてしまうようで、実行しようとしてエラーになることに気づいた。環境は Debian Linux 10 buster i686 + Apache2 2.4.59-1~deb10u1。

ファイル名の最後が .txt なのだからテキストファイル(text/plain)として扱われるはずでは…? もしかして、ファイル名に .pl や .cgi が含まれているだけで、CGI実行ファイルとして扱ってしまう…?

とりあえず、.htaccess に以下のような記述をして、テキストファイルとして扱われるようにしてみた。
Options +Indexes -ExecCGI +FollowSymLinks

AddType text/plain .pl.txt
AddType text/plain .cgi.txt

<FilesMatch "\.(pl|cgi|txt)$">
    ForceType text/plain
    SetHandler none
</FilesMatch>

<Files ~ "\.(pl|cgi)\.txt$">
    ForceType text/plain
    SetHandler none
    RemoveHandler .pl .cgi
    RemoveHandler cgi-script
</Files>

余談。ググってみても、CGIとして動いてくれない状態を動くようにするための指定/記述ばかりで、その逆が全然見つからない…。Microsoft Copilot に何度も尋ねまくって色々試してみたけれど、どうやら RemoveHandler .pl .cgi が効いてくれたっぽい。

以上です。

過去ログ表示

Prev - 2024/07 -
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project