如何阻止外部下载链接访问,如果访问者不从可湿性粉剂推荐?

时间:2019-05-03 作者:maxwassim

如果我们的wordpress站点没有引用访问者,如何阻止链接访问(在自定义脚本安装的服务器上)?

我的意思是,我们想阻止访问我们wordpress帖子内部的链接,并使它们只能通过登录的wp用户访问。注意:我们可以控制其他服务器及其文件/数据库。

1 个回复
SO网友:Rick Hellewell

虽然这不是一个问题(也许可以在StackOverflow试一试https://stackoverflow.com/ ), 你可以试试

检查引用页面(尽管这可能是伪造的)

  • 在WP上设置cookie并在其他站点上查找它(尽管第二个站点可能无法读取第一个站点的cookie)。(added) 域2无法读取域1设置的cookie-请参阅https://stackoverflow.com/questions/2919968/php-read-a-cookie-that-is-on-another-domain - 因此,这种选择不会跨域工作
  • 在从站点1重定向到站点2时设置查询变量,并检查站点2上的查询变量,如果用户已登录,则仅显示WP页面上的链接(否则,不会显示未登录用户的链接)。(这意味着,如果您的问题是“如何仅显示登录WP用户的链接?”,这可能更适合这个地方。)
  • Added

    基于我在对答案的评论中提供的两个链接,为了向您展示使用这两个链接中的信息进行第四个选择(最佳cboice)是多么容易,下面是一些示例代码,允许使用一个短代码仅向登录用户显示HREF链接。

    // function for the [url] shortcode
    function show_link_to_users ($atts) {
        // check if user is logged in
        if (is_user_logged_in()) { 
            $the_link =  "a href=\'". $atts[\'link\'] . "\'>$atts[\'url\'</a>";
        }
        return;     // returns a null if user not logged in
        }
    
    add_shortcode(\'url\', \'show_link_to_users\');
    
    /*  Usage in content area of page/post
    
     This link only shown for logged in users: [url="https://www.example.com/somepage/here"]
    
    The HREF link will only be shown for logged in users.
    
    Note: no sanitation of the link value in the shortcode
    */
    
    此代码将放置在子主题的函数中。php文件。(您不想将其放在theme的functions.php文件中,因为主题更新会覆盖(销毁)代码。(阅读儿童主题——谷歌上有很多儿童主题。)

    Also Added

    如果要阻止对网站上有人将键入的URL(或共享的URL未经命名)的访问,则需要使用htaccess/htpasswd规则来阻止网站的特定文件或子文件夹。

    你不能用WP函数来实现这一点(非常肯定),因为用户可以直接访问链接,而不是通过页面上的链接。

    And Added More

    关于这一点的背景思考。总体思路,但需要一些编程。

    将所有可下载/隐藏的内容放在网站的同一子文件夹中

  • 使用htaccess规则将指向该子文件夹中任何文件的所有请求重定向到特定页面该特定页面有一个检查用户是否登录的模板
  • 如果用户已登录,则通过标题(非链接)提供要下载的文件。
  • 如果用户未登录,则显示一条消息,告诉他们登录
  • 您可以使用查询值指定要下载的文件(通过在自定义表中进行查找,该表将查询值链接到通过标题提供的文件)。

    相关推荐

    links format change "on clic"

    我的网站上有一个问题,我不知道它来自哪里。当我点击每个链接时,“更改”(更大和更改位置)。在菜单链接上,它们仍然是可裁剪的,但在页面中有链接时,它根本不起作用。示例:https://www.beprovence.fr/en/department/bouches-du-rhone-en 试着点击“普罗旺斯的aix”,看看会发生什么。提前感谢您的帮助