这看起来很简单,但我做不到。
我有一个用户将其用户名从 更改givenname
为name
,现在我需要重写,更改客户端上的 URL,以避免 ~givenname 上出现 404 错误。
我想我可以做这样的事情:
RewriteEngine on
RewriteBase /~givenname/
RewriteRule ^~givenname/([^/]+)$ ~name/$1 [R=301,L]
但我无法做到这一点。
我知道会在 Unix 文件 ( ) 或 上指定的任何内容mod_userdir
中查找特定用户信息,但有没有办法欺骗它并重定向到新用户名?/etc/passwd
/etc/nsswitch.conf
谢谢。
PS:我正在运行一个较旧的 Apache 2.2.16 服务器。
答案1
您可以禁用mod_userdir前用户名的功能:
UserDir disabled givenname
之后你可以简单地使用mod_alias对于重定向:
Redirect "/~givenname" "/~name"
请尽快升级到 Apache 2.4:Apache 2.2 在 2017 年之后没有更新,而 2.2.16 是 2010 年 7 月的!