如果用户未登录,则重定向该用户

时间:2017-11-08 作者:Marko.dev

你能帮我解决这个小问题吗。

我需要找到一个解决方案,当用户想要通过帖子内容中的链接下载文件时,如何将其重定向到登录页面,因此,我有一些文件,我希望它们只对登录的用户可用,否则它们应该在登录页面上重定向,例如,我想禁止访问(下载)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]

3 个回复
最合适的回答,由SO网友:Marko.dev 整理而成

幸亏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]

SO网友:Marcelo Henriques Cortez

我不会为此使用htaccess。

我要做的是制作一个“下载页面”模板,并使用它来“服务”文件。

通过这样做,我可以检查is_user_logged_in() Codex 并使用重定向wp_login_url() Codex

只需执行以下操作:

if ( is_user_logged_in() ) :
//file link
else :
    wp_login_url();
endif;
我认为这样做更容易、更安全。此外,您甚至可以在以后将其制作成插件并在其他项目中使用,或者在更改网站模板时继续使用它。

SO网友:Wilco

我最近也希望如此,只是我只想确保发票的安全。

我把这个放在的WordPress部分上面。htaccess

<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目录中的文件以读取文件的人。php wich也位于WordPress的顶层。读取文件。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;
希望有帮助!

结束

相关推荐

有关加载403/404错误页面和htaccess的问题

我上传了一个html 403和404页面到我的WordPress主题目录,如果我在之后遇到了一个随机错误。com,如。com/yyyy然后加载404页,例如-所以一切都很好。。。然而我想要403。当我允许的IP字符串之外的人试图访问我的登录页面时,将显示php。这htaccess规则工作得很好,但它在WordPress试图找到403时创建了一个永无止境的循环。php页面。。<IfModule mod_rewrite.c> RewriteEngine on RewriteCond