为更改用户名的用户重写 userdir

为更改用户名的用户重写 userdir

这看起来很简单,但我做不到。

我有一个用户将其用户名从 更改givennamename,现在我需要重写,更改客户端上的 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 月的!

相关内容