私が達成したいことは次のとおりです
ドメイン内のブラウザでのみファイル形式を表示(mp4
|| jpg
)してファイル形式を実行(|)できるようにしたいのですが、ブラウザのアドレスバーにURLを入力してファイルに直接アクセスしたくありません。ico
js
css
私が期待して行ったことは
PHPに慣れたら、$_SERVER['HTTP_REFERER']
次のURLを取得します。http://ドメイン名.xyz/main.phpしかし、同じことが本当かどうかはわかりません.htaccess
。.htaccess
では、HTTP_REFERER
このような正規表現パターンを使用します^https?://(www.)?domainname\.xyz/.*$
が、URLパターンを使用すると、https?://(www.)?domainname\.xyz/main.php
正確なURLをハードコーディングできます.htaccess
。これらのURLはエラーを引き起こす可能性があるため、サイトのコードに沿ってスクリプトに統合しました。私はhtaccess正規表現の専門家ではありません。
だから私は調査の結果、次の.htaccessを取得し、さまざまなサイトで追跡しました。
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^https?://(www.)?domainname\.xyz/.*$ [NC]
RewriteRule \.(jpg|js|css|mp4)$ - [NC,F,L]
また、さまざまなサイトで次のコードを試してみました。
SetEnvIf Referer "!^https?://(www.)?domainname\.xyz/.*$" localreferer
<FilesMatch "\.(jpg|js|css|mp4)$">
Require env localreferer
</FilesMatch>
上記のコードで現在起こっていることは次のとおりです。
上記の.htaccess
スクリプトを使用すると、ブラウザにファイル形式のみが表示され、mp4
ブラウザのアドレスバーのURLを介して直接アクセスできず、403 Forbidden
エラーが表示されます。
他のすべてのファイル形式はブラウザに表示/実行するか、URLを使用してアドレスバーから直接アクセスできます。
助ける
私はhtaccess、正規表現の専門家ではないので、これについてあなたの助けを求めています。数日間これを研究しましたが、まだ解決できませんでした。あなたの助けを借りて私の知識は成長します。
ベストアンサー1
あなたが望むことは不可能です。 JavaScriptプログラムを実行したりCSS形式のファイルを適用したりするには、ブラウザからそのファイルをダウンロードする必要があります。それは正確にブラウザのURLバーに入力されたURLを開くのと同じメカニズムです。
また、データのインポート方法が異なりますが:ブラウザ持つ何らかの方法でデータを取得します。その瞬間はユーザーのコンピュータにあるので、サーバーの制御を受けません。
Webサイト、組み込みのJS、およびCSSがユーザーのコンピュータで実行されているプログラムであることを直視する必要があります。この目的のために、彼らはあなたのサーバーからこれらのものを取得します。この問題を解決する方法はありません。