首页 > 解决方案 > 重定向到页面/url,由 htaccess 中的用户控制

问题描述

如何重定向/发送用户,由用户名“控制” .htaccess

例子:

标签: .htaccess

解决方案


假设您正在使用 HTTP 身份验证保护根目录,那么您可以在根.htaccess文件中执行以下操作:

RewriteEngine On

# UserA redirected to "/1234.html"
RewriteCond %{REMOTE_USER} =UserA
RewriteRule !^1234\.html$ /1234.html [R,L]

# UserB redirected to "/9876.html"
RewriteCond %{REMOTE_USER} =UserB
RewriteRule !^9876\.html$ /9876.html [R,L]

如果 UserA 已登录并访问此目录,则它们将被重定向(302 - 临时)到/1234.html. 否则,如果 UserB 已登录,它们将被重定向到/9876.html.

CondPattern,例如。=UserA=前缀),是“UserA”的精确字符串比较(区分大小写)。

否定的 ( !)RewriteRule 模式,例如。!^1234\.html$检查请求是否尚未用于1234.html(即目标文件),否则我们将获得重定向循环。

请注意,用户总是被重定向(强制)到相应的文件/页面。如果用户应该只在他们第一次登录时被重定向到该文件,那么您将需要另一个条件(可能基于 cookie)来确定他们已经访问过该文件。


推荐阅读