Php 当用户尝试使用直接URL访问资产时,如何将用户重定向到登录页面

Php 当用户尝试使用直接URL访问资产时,如何将用户重定向到登录页面,php,.htaccess,session,redirect,Php,.htaccess,Session,Redirect,所以我有一个完善的工作网站,用户可以登录和注册。现在,当用户登录时,我创建了一个用户会话,并使用它来维护登录状态 现在,我的站点上几乎没有托管在服务器上的视频内容。假设只有在用户登录时才可以访问这些文件。但现在,任何直接链接到媒体的人都可以在不登录的情况下查看它们 当前webiste文件夹结构如下所示: 因此,我试图解决两个问题: 如果用户试图直接访问链接而未登录,则应重定向到登录页面。 如果用户已经登录,他应该能够查看资源,即使直接链接? 你有什么建议?我不想停止用户使用.htaccess强

所以我有一个完善的工作网站,用户可以登录和注册。现在,当用户登录时,我创建了一个用户会话,并使用它来维护登录状态

现在,我的站点上几乎没有托管在服务器上的视频内容。假设只有在用户登录时才可以访问这些文件。但现在,任何直接链接到媒体的人都可以在不登录的情况下查看它们

当前webiste文件夹结构如下所示:

因此,我试图解决两个问题:

如果用户试图直接访问链接而未登录,则应重定向到登录页面。 如果用户已经登录,他应该能够查看资源,即使直接链接?
你有什么建议?我不想停止用户使用.htaccess强制身份验证,因为某些移动浏览器不支持它,并且希望将用户重定向到登录页面以进行取消身份验证访问。

除了PHP之外,您不能在任何地方使用PHP会话,因此如果您希望用户必须使用PHP登录,那么他们必须通过PHP访问该文件。为此,您需要使用htaccessrewrite将媒体请求重定向到PHP页面。像这样的方法应该会奏效:

RewriteEngine On
RewriteRule ^(.*)\.mp4$ media.php?file=$1 [L]

然后在media.php中,您可以对用户进行身份验证或将其重定向到登录页面。如果用户已登录,您可以为其提供文件。

您无法做到这一点,如果用户在直接访问资源时未使用PHP登录,您就无法将用户重定向到PHP页面。您必须通过PHP控制对文件的访问。如果用户试图直接访问资源,可以使用htaccess重定向到PHP页面。