前提・実現したいこと
- Windows10
- Google Chrome
- VirtualBox
- CentOS7
- nginx 1.17.2
- php7.1.33
サーバー上に置いてあるCSVファイルへの直リンクを叩くと、Basic認証でのログインが求められ、ログインに成功するとそのままCSVファイルがダウンロードされるようにしたいです。
発生している問題・エラーメッセージ
/path/to/csv/hoge.csv
というCSVファイルがあるとして、http://hogehoge.com/path/to/csv/hoge.csv
とリンクを叩くとファイルが自動でダウンロードされます。
ここで、hoge.csv
または/csv/
にBasic認証をかけてログインを求めさせ、ログイン出来たらダウンロードが開始されるようにしたいのですが、Basic認証のログインに成功してもダウンロードが開始されず困っております。
Basic認証をかけていない状態では、http://hogehoge.com/path/to/csv/
のページは表示され、http://hogehoge.com/path/to/csv/hoge.csv
でファイルがダウンロードされました。
該当のソースコード
hogehoge.conf
1# hogehoge.conf 2server { 3 listen 80; 4 server_name hogehoge.com; 5 location / { 6 root /usr/share/nginx/html/hogehoge.com/webroot; 7 index index.php index.html index.html; 8 9 try_files $uri $uri/ /index.php?$args; 10 } 11 error_page 500 502 503 504 /50x.html; 12 location = /50x.html { 13 root /usr/share/nginx/html/hogehoge.com/webroot; 14 } 15 location ~ .php$ { 16 root /usr/share/nginx/html/hogehoge.com/webroot; 17 fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; 18 fastcgi_index index.php; 19 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 20 include fastcgi_params; 21 } 22 location ~ .csv$ { 23 auth_basic "secret"; 24 auth_basic_user_file "/usr/share/nginx/html/hogehoge.com/webroot/csv/.htpasswd"; 25 } 26}
試したこと
- /csv/配下に.htaccess と .htpasswd を設置。nginxとの関係か、Basic認証はかからず。
- hogehoge.confに location を追記。Basic認証は実装され、ログインもできるのですが、
http://.../csv/
のページにアクセスした際、配下にあるindex.phpが読まれず404 Not Foundになり、http://.../csv/hoge.csv
と直接ファイルを取りに行くもCSVファイルがダウンロードされず、こちらも404 Not Foundが表示されます。
感触としては、confファイルのlocationの記述で何かが足りないのだと思うのですが、お手上げ状態です。
その他
本番環境での.conf設定は以下のようになります
server { listen IPアドレス:80; server_name hogehoge.com; return 301 https://hogehoge.com$request_uri; } server { listen IPアドレス:443; server_name hogehoge.com; if ($host !~ ^hogehoge.com) { return 301 https://hogehoge.com$request_uri; }
どうか皆様のお知恵をお授けください。宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー