.htaccess - 重定向到页面/url,由 htaccess 中的用户控制
问题描述
如何重定向/发送用户,由用户名“控制” .htaccess
?
例子:
- 如果 UserA 登录,则将 UserA 发送到
1234.html
- 如果 UserB 登录,则将 UserB 发送到
9876.html
解决方案
假设您正在使用 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)来确定他们已经访问过该文件。
推荐阅读
- r - 计算一棵树的总分支数
- c++ - 如何安装 Windows 10 SDK 以用于 Visual Studio 2017
- jquery - jquery返回404,url与初始值不匹配
- html - 两个元素的 z-index 未按预期工作
- sql-server - TFS 2015 将报告服务器从 SQL Standard 升级到 SQL Enterprise
- c# - 错误 CS0234:命名空间“System.Web”中不存在类型或命名空间名称“Mvc”(您是否缺少“System.Web”
- python - 字典/列表理解将列表中的新字典值分配给预定义的键
- android - TabLayout 滚动和 RecyclerView 滚动
- angular - 将参数和 HTML 注入 ngx-translate 键
- python - 具有多个字符的 Python 2.7 格式字符串填充