1

ドメインに多数のフォルダーとサブフォルダーがあります。特定のサブフォルダー内のファイル タイプ html/jpg/gif/ などへの直接アクセスを避けたいのですが、index.php ページからアクセスできるようにしたいと考えています。

構造は次のようなものです。

  • www.domain.com/folder1
  • www.domain.com/folder2
  • www.domain.com/folder2/subfolder1
  • www.domain.com/folder2/subfolder2
  • www.domain.com/folder2/subfolder2/index.php
  • www.domain.com/folder2/subfolder2/page1.html
  • www.domain.com/folder2/subfolder2/page2.html
  • www.domain.com/folder2/subfolder2/images/1.jpg
  • www.domain.com/folder2/subfolder2/images/2.jpg

block_content という新しいフォルダー内に page1.html、page2.html、および images フォルダーを配置しようとしまし

  • www.domain.com/folder2/subfolder2/index.php
  • www.domain.com/folder2/subfolder2/blocked_content/page1.html _ _

そして、 blocked_contentフォルダー内deny from allおよびその中に .htaccess を追加しました。index.php でさえ、この中のファイルにアクセスできません。Index.php には次のような単純なリンクしかありません。Order Deny,Allow Deny from all<a href="blocked_content/page1.html">

.htaccess でこの設定を試しました:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain\.com [NC] 
RewriteRule \.(swf|pdf|css|gif|png|jpg|html|htm)$ - [F]

subfolder2 の中に入れても効果はありませんでした。

.htaccess でこの設定を試しました:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain\.com/folder2/subfolder2 [NC] 
RewriteRule \.(swf|pdf|css|gif|png|jpg|html|htm)$ - [F]

subfolder2 の中に入れました: 効果はありません。ルートディレクトリに配置すると、他のすべてのフォルダーがブロックされます。

いろいろ探しました。立ち往生しています。私は何を間違っていますか?htacess を間違った場所に置いたり、何かを追加するのを忘れたりしていませんか? できれば .htacess でやりたいです。ファイル名を変更できないため、すべての html ファイルに php セッションを含めることはできません。

4

1 に答える 1

1

私が試みていた方法でこれを行う方法を見つけました。

Webツールを使用して、このWebサイトでこの.htaccessを生成しました。画像の直リンクを防止する–直リンクを保護する方法

.htaccessをblocked_content/フォルダーに入れます。

ドメイン内のindex.phpはこのフォルダー内のすべてにアクセスできますが、ユーザーはブラウザーでホットリンクとしてURLを入力できません。例:www.domain.com/folder2/subfolder2/blocked_content/images/1.jpg

新しい.htaccessの違い

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain.com [NC]
RewriteRule \.(swf|pdf|css|gif|png|jpg|html|htm)$ - [NC,F,L]

古いものに:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain\.com [NC] 
RewriteRule \.(swf|pdf|css|gif|png|jpg|html|htm)$ - [F]

PS:@Mikulas Diteは、私が望むほど安全ではないかもしれないと私に言いました。

于 2012-09-24T21:57:26.520 に答える