
Это кажется простым, но у меня не получилось.
У меня есть пользователь, который изменил свое имя пользователя с 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 года!