2015-02-02 2 views
0

Hy all, У меня есть небольшая проблема с блоком сервера nginx, и я надеюсь, что кто-то из этого узнает решение.Блок сервера Nginx

Это как моя конфигурация выглядит следующим образом:

server { 
    listen 80; 
    server_name example.com www.example.com; 
    return 301 https://www.example.com; 
} 

server{ 
    listen 80; 
    server_name *.example.com; 
    return 301 https://$host$request_uri; 
} 

server { 
    listen 443 ssl; 
    server_name .example.com; 
... 
} 

Таким образом, первый блок нормально HTTP Перенаправление HTTPS второй догоняет субдоменов и третий блоки где место есть и т.д.

Моя проблема заключается в том, что когда второй блок ловит запрос, хотел бы добавить/admin в URL-адрес, чтобы он был subdomain.example.com/admin, но я должен проверить, есть ли у него/admin, поэтому я не получаю что-то вроде этого subdomain.example. ком/админ/админ.

Я попробовал server_name *.example.com$ и server_name ~.example.com(=<id>.*), затем if ($id = '') и сотни комбинаций и ничего не получил.

Неужели кто-нибудь здесь имел схожую проблему и решил?

ответ

0
server { 
    listen 80; 
    server_name *.example.com; 
    if ($request_uri !~ ^/admin/) { 
     return 301 https://$host/admin$request_uri; 
    } 
    return 301 https://$host$request_uri; 
} 
+0

Некоторые фрагменты кода не очень информативны. Пожалуйста, объясните, что делает код, почему вы написали его таким образом, и как вы ожидаете его работы. – oefe

+0

Извините, я удалил свой вопрос, прежде чем я прочитал ваш, мне удалось его работать, это была, очевидно, какая-то моя ошибка – vilim67

Смежные вопросы