質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

Q&A

解決済

1回答

420閲覧

レンサバにzipファイルを置いて特定のドメインからのみしかダウンロードさせないようにしたい

shimon11

総合スコア50

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

0グッド

0クリップ

投稿2024/10/07 10:05

実現したいこと

レンタルサーバー(エックスサーバー)にzipファイルを置いて特定のドメイン(自身のドメイン)からのみしかダウンロードさせないようにしたいです

https://example.com/limit-assets/ の配下に置いたzipファイルを
https://example.comからのみしかアクセスさせない方法を知りたい
https://example.com/limit-assets/sample.zip にアクセスした時にダウンロードさせたくないです。

発生している問題・分からないこと

.htaccessなどでリダイレクトやIPアドレス制限をかけたのですが、うまくいかない
.htaccessでは出来なさそうなのか、他の方法があれば教えていただきたい

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

これでhttps://example.com/limit-assets/ 配下のフォルダはリダイレクトされると思ったのですが、
https://example.com/limit-assets/sample.zipにアクセスするとダウンロードされてしまいます。

sh

1<IfModule mod_rewrite.c> 2RewriteEngine On 3RewriteCond %{REQUEST_URI} ^/limit-assets/.* [NC] 4RewriteCond %{REMOTE_ADDR} !^123\.456\.78\.9$ 5RewriteRule .* https://example.com [R=302,L] 6</IfModule>

他にも

sh

1<FilesMatch "\.zip$"> 2 Order Deny,Allow 3 Deny from all 4 Allow from 123.456.78.9 5</FilesMatch>

として.zipファイル全体をIPアドレスから制限したのですが、うまくいきません。
お心優しい方教えていただければ幸いです。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2024/10/07 13:44 編集

書いてあることで、「特定IPアドレス以外からアクセスできない」は出来そうに見えます。 ドキュメントルートの .htaccess に書いてますか? 念のため、XXXX など出鱈目な内容を書いてみて、文法エラーにより 500 エラーが返ることを確認してみましょう。
bsdfan

2024/10/07 13:37

> https://example.com からのみしかアクセスさせない方法 いわゆる直リンク禁止みたいなことをやりたいということでしょうか?
shimon11

2024/10/07 13:47

ありがとうございます。 ドキュメントルート(/public_html) 直下に置いています。 RewriteCondの部分を適当なURLにするとリダイレクトはしますが、zipファイルへのアクセスリンクにするとダウンロードができてしまします。
otn

2024/10/07 17:56 編集

> RewriteCondの部分を適当なURLにするとリダイレクトはしますが、zipファイルへのアクセスリンクにするとダウンロードができてしまします。 「こういうコードに変更すると、こういう結果になる」というのを実際のコードのコピペと、それぞれの結果としての現象を質問文に追記してください。 コードは必ずコピペで。公開できない部分があれば、公開できるように修整した後で、実際に実行して同じ結果であることを確認の上で、コピペです。
shimon11

2024/10/07 22:49

```sh <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} ^/limit-assets/.* [NC] RewriteCond %{REQUEST_URI} ^/limit-assets/1 [NC] RewriteCond %{REMOTE_ADDR} !^123\.456\.78\.9$ RewriteRule .* https://example.com [R=302,L] </IfModule> ``` とこのようにRewriteCond %{REQUEST_URI} ^/limit-assets/1 [NC]を書くとhttps://example.com/limit-assets/1を叩くとhttps://example.com/にリダイレクトします。 ただ、https://example.com/limit-assets/sample.zipを叩くとzipファイルがダウンロードされてしまいます。
otn

2024/10/08 00:16

> 質問文に追記してください。 というのは、コメント欄に書くのじゃなくて、質問文を編集して追記という意味です。 > ただ、https://example.com/limit-assets/sample.zipを叩くとzipファイルがダウンロードされてしまいます。 この記述だと、https://example.com/limit-assets/1 だけをリダイレクトするので、それ以外の https://example.com/limit-assets/sample.zip がそのままダウンロードされるのは当然です。 何を意図して RewriteCond %{REQUEST_URI} ^/limit-assets/1 [NC] というAND条件を追加したのでしょうか?削除しましょう。この1行を削除した状態で、https://example.com/limit-assets/sample.zip を叩くとどうなりますか?
shimon11

2024/10/08 01:46

maisumakun さん zipファイルで有料の商品を販売しようとしています。 そのzipファイルを自身のドメイン内でjsonファイルのダウンロードリンクを指定して解凍して実行するWebサービスがあります。 そのjsonファイルは公開する必要があり、ダウンロードリンク先がわかります。なので直接zipファイルをダウンロードされたくないという意図があります。
otn

2024/10/08 03:48 編集

> そのzipファイルを自身のドメイン内でjsonファイルのダウンロードリンクを指定して解凍して実行するWebサービスがあります。 > そのjsonファイルは公開する必要があり、ダウンロードリンク先がわかります。なので直接zipファイルをダウンロードされたくないという意図があります。 「そのzipファイルをjsonファイルのダウンロードリンクを指定して解凍して実行する」を行うのはあなたの組織が管理するサーバーが行うことであって、クライアント側で行うことではないですよね? ということだと、要件は「特定IPアドレス(その処理を行うサーバー)以外からアクセスできない」と合致していそうに思えます。 > zipファイルで有料の商品を販売しようとしています。 はそれらと矛盾するように見えます。 要件は、「内部的にしか使用しないZIPファイルを、どうしても外部からもアクセス可能な場所に置かざるを得ないため、特定IPアドレス以外からアクセスできないようにしたい」で合ってるのでしょうか?合ってないのでしょうか? (この場合「どうしても外部からもアクセス可能な場所に置かざるを得ない」を見直すべきですが) 合ってない場合は要件を正確に矛盾なく書いて下さい。その際は「ドメイン」という単語は使わない方が良いですね。
guest

回答1

0

ベストアンサー

ダウンロードリンク先がわかります。なので直接zipファイルをダウンロードされたくないという意図があります。

仮に依頼通りに制限が実装できたとしても、ブラウザの自動制御などで「https://example.comから」自動アクセスを行うことで、購入者以外にも制限なくダウンロードが可能となってしまいます。

ダウンロードURLをJSONに書いて公開するという構造そのものを変える必要があります。

投稿2024/10/08 02:07

maisumakun

総合スコア145941

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2024/10/08 02:10

何か読み飛ばしたり、解釈が違っているところなどありましたら、適宜補足いただけましたら幸いです。
maisumakun

2024/10/08 03:56

(そもぞも、zipファイルをパブリック領域に置かなければならない事情はどのようなものでしょうか)
shimon11

2024/10/08 05:44

ありがとうございます! WebサービスがありzipファイルのダウンロードURL指定して実行するのでバブリック領域に必要なのです。 難しそうであれば諦めようと思います。
maisumakun

2024/10/08 05:46

> WebサービスがありzipファイルのダウンロードURL指定して実行するのでバブリック領域に必要なのです。 その「Webサービス」というのは「同じサーバに同居」「別サーバにあるけどshimon11さんが管理している」「第三者が運用している」のいずれなのでしょうか?
shimon11

2024/10/08 08:14

ありがとうございます。 同じサーバに同居しています。
maisumakun

2024/10/08 08:43

となると、「のでバブリック領域に必要なのです。」というのがよくわかりません。 パブリックへ置かずに済むような改造を妨げる事情はどのようなものでしょうか。
shimon11

2024/10/08 11:26

ダウンロード可能なURLが必要なWebアプリなのですが、詳細をお伝えできずすみません。 不可能ということがわかりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問