Переписать userdir для пользователей, которые изменили имя пользователя.

Переписать userdir для пользователей, которые изменили имя пользователя.

Это кажется простым, но у меня не получилось.

У меня есть пользователь, который изменил свое имя пользователя с givennameна name, и теперь мне нужно переписать, изменив URL на клиентах, чтобы избежать ошибок 404 для ~givenname.

Я подумал, что можно сделать что-то вроде этого:

RewriteEngine on
RewriteBase /~givenname/
RewriteRule ^~givenname/([^/]+)$ ~name/$1 [R=301,L]

Но я не смог этого сделать.

Я знаю, что он mod_userdirищет конкретную информацию о пользователе в файлах Unix ( /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 года!

Связанный контент