実現したいこと
スペースを含むurlでも正常にページが表示される。
発生している問題・分からないこと
セキュリティ向上のためapacheをアップデートしたところスペースを含むurlにアクセスできなくなりました。
apache
旧:httpd-2.4.37-65.module_el8.10.0+3860+a6e26e50.x86_64
新:httpd-2.4.37-65.module_el8.10.0+3874+c2064c23.2.x86_64
PHP 7.2.24 (fpm-fcgi) (built: Oct 22 2019 08:28:36)
AlmaLinux 8.10
スペースを含むurlにアクセスすると「File not found.」とだけブラウザに表示されます。
htmlソースにはタグ等はなく「File not found.」だけ記載されています。
ログを見る限り、php-fpm関連機能にurlが渡されたところで「当該ファイルがない」と認識されるように見受けられました。
エラーメッセージ
error
1[Thu Sep 12 20:55:47.238881 2024] [proxy_fcgi:error] [pid 30836:tid 140479882372864] [client 192.168.13.17:54872] AH01071: Got error 'Primary script unknown\n', referer: http://xxx.xxx.xxx.xxx:8081/
該当のソースコード
※抜粋 <IfModule !mod_php5.c> <IfModule !mod_php7.c> # Enable http authorization headers SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 <FilesMatch "\.(php|phar|html)$"> SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost" </FilesMatch> </IfModule> </IfModule>
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
apacheをデグレードすると正常稼働するので、当方環境での直接的な原因はapacheのアップグレードであることは分かりました。
設定等で回避できるかリライト等も試しましたがurlにスペースが含まれると
「File not found.」とだけ表示されます。
補足
海外のサイトで同様の事象が相談されていましたが
回避方法が実ファイルがなければSetHandlerしないという方法でした。
実際にはファイルは存在するので解決にはいたりませんでした。
https://serverfault.com/questions/984990/ah01071-got-error-primary-script-unknown-n-apache2-4-php-fpm7-2
回答1件
あなたの回答
tips
プレビュー