Nginx получает первую часть URL-адреса

#regex #nginx #url #server

#регулярное выражение #nginx #url #сервер

Вопрос:

В этом контексте я хотел бы получить только части URL-адресов «user1», «user2».

 site.com/user1/
site.com/user2/
site.com/user2/about
site.com/user2/contact
  

Когда я пытаюсь сделать что-то подобное, он получает весь URL.

 location ~* ^/(.*)$ {
  add_header X-username $1
  # configuration
}
  

Итак, как я могу изменить регулярное выражение, чтобы получить только первую часть URL-адреса?

Комментарии:

1. Попробуйте: ^/([^/] )/

2. Похоже, это работает. Спасибо.

Ответ №1:

Используйте

 ^/([^/] )
  

Смотрите доказательство.

Объяснение

 --------------------------------------------------------------------------------
  ^                        the beginning of the string
--------------------------------------------------------------------------------
  /                        '/'
--------------------------------------------------------------------------------
  (                        group and capture to 1:
--------------------------------------------------------------------------------
    [^/]                     any character except: '/' (1 or more
                             times (matching the most amount
                             possible))
--------------------------------------------------------------------------------
  )                        end of 1