2014-09-14 3 views
0

Следующая конфигурация перепишет /admin, а proxy_pass /core, я не могу понять причину. Любой намек на это? Аналогичный случай Nginx: location regex for multiple paths with backend.Директива о местонахождении nginx не работает должным образом

location/{ 
    if (!-e $request_filename) { 
     rewrite ^(.*)$ /\#$1 break; 
    } 
} 

location ~ ^/(admin|core)/ { 
    proxy_pass http://127.0.0.1:8080/$1; 
} 
+0

Администратор - это физический каталог под docroot? – Melvyn

+0

Нет, нет каталога администратора. – schemacs

+0

Убедитесь, что ваш запрос содержит конечную косую черту. Я действительно не вижу другой причины, почему это должно сломаться. – Melvyn

ответ

1

Использование try_files упростит вещи.

location/
    try_files $uri $uri/ =404; 
} 

location ~ ^/(?:admin|core)/ { 
    proxy_pass http://127.0.0.1:8080; 
} 
+0

'nginx: [emerg] location" ^/(?: core | admin)/"не может находиться внутри указанного местоположения" @backend "' – schemacs

+0

Хороший улов. Я удалил именованное местоположение из своего ответа. –

+0

Спасибо, ты спасешь мой день. Но почему функция регулярного выражения не работает? – schemacs

0

Попробуйте этот вариант:

location ~ ^/(admin|core)(.*)$ { 
    proxy_pass http://127.0.0.1:8080/$1; 
} 
Смежные вопросы