あなたは私を少しの問題で助けてもらえますか。
解決策、彼が投稿コンテンツのリンク上でファイルをダウンロードする時にログインページにリダイレクトする方法を見つける必要があるので、私はいくつかのファイルを持っていて、ログインしているユーザーだけが利用できるようにしたいです。ログインページでリダイレクトされます。例えば、wp-contentフォルダからすべてのファイルへのアクセス(ダウンロード)を禁止したい、これらのフォルダのいくつかがルートにある、.htaccess
ファイルを試してみましたが、うまくいかない
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?brt\.keezst\.com/ [NC]
RewriteCond %{REQUEST_URI} !hotlink\.(gif|png|jpg|doc|xls|pdf|html|htm|xlsx|docx|mp4|mov) [NC]
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC]
RewriteRule .*\.(gif|png|jpg|doc|xls|pdf|html|htm|xlsx|docx|mp4|mov)$ http://brt.keezst.com/ [NC]
ありがとう Marcelo Henriques 答え.htaccess
ファイルでこれを機能させる方法を考え出しました。コードは次のとおりです。
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} ^.*(mp3|m4a|pdf|doc|xlsx|docx|xls)$
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC]
RewriteRule (.*) http://website.com/login/
あなたが登録されていないユーザーから保護したいフォルダに.htaccessファイルを置いてください、そして、それは仕事をします、最後の行はリダイレクトです。
そのため、アンカーリンクを介したファイルアクセスを保護する場合は、特定のフォルダ(アップロード/メディア)からフォルダ内の.htaccessファイルを作成してこのコードを貼り付けます。 403
(禁止)だけを望む場合は、RewriteRule (.*) http://website.com/login/
を[R=403,L]
に変更してください。
私はそのためにhtaccessを使用しません。
私がすることは、「ダウンロードページ」テンプレートを作成し、それを使用してファイルを「提供」することです。
そうすることで、is_user_logged_in()
Codex でチェックし、wp_login_url()
Codex でリダイレクトできます。
ただしてください:
if ( is_user_logged_in() ) :
//file link
else :
wp_login_url();
endif;
そうする方が簡単で安全だと思います。それ以外にも、後でそれをプラグインにして別のプロジェクトで使用することも、サイトテンプレートを変更しても使用し続けることもできます。
私は請求書だけを保護したいと思ったことを除いて、私は最近同じことを望んだ。
これを.htaccessのWordPress部分の上に置きます。
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^.*wp-content/uploads/invoices/.*
RewriteRule ^wp-content/uploads/(invoices/.*)$ read-file.php?file=$1 [QSA,L]
</ifmodule>
これは、invoicesディレクトリ内のファイルに行きたい人全員をread-file.phpにリダイレクトします。このファイルもWordPressのトップレベルにあります。ユーザーがログインしているかどうかを確認するためにread-file.phpには次のコードがあります。
<?php
// Load wp
require_once('wp-load.php');
// If user is logged in
if( ! is_user_logged_in() ) {
// Redirect to home
wp_redirect( url to your login page );
exit;
}
// Additional checks here
// Headers to open or download the file
// readfile( $file );
// exit;
それが役に立てば幸い!