Я использовал Ubuntu, Nginx, PHP, MySQL.
Я хочу UserDir http://example.com/~userID
Я редактирую файл vi nginx по умолчанию
location ~ ^/~(.+?)(/.*)?$ {
alias /home/$1/public_html$2;
index index.html index.htm;
autoindex on;
}
я не понимаю эти строки …
location ~ ^/~(.+?)(/.*)?$
alias /home/$1/public_html$2;
Что это значит ~ ^/~(.+?)(/.*)?$
?
Что это значит $1, $2
?
~ — регистрозависимое соответствие
где url начинается (^) с косой черты и тильды (/ ~), затем ставит в скобки точку (.) любого символа с одним или несколькими вхождениями (+), который может или не может быть, независимо от (?), закрывающей скобки, которая соответствует $ 1, затем $ 2 — следующая косая черта, совпадающая с косой чертой (/), любой символ (.) с нулем или множеством вхождений, которые могут легко не существовать (?) и заканчиваться ($)
так что если URL выглядит www.example.com/~tengiz/qw123
, $ 1 будет равно «~ tengiz», а $ 2 равно «/ qw123», и выражение на самом деле должно выглядеть так, я полагаю:
^\/~(.+?)\/(.*)?$
Других решений пока нет …