2016-03-30 3 views
0

В Apache эта логика работает нормально - и согласно документации, с Nginx тоже.Nginx Rewrite - Last Ignored?

location = /login/ { rewrite ^(.*)$ /login.php last; } 
rewrite ^/([^/]*)/$ /page.php?c=$1 last; 

В идеале, domain.com/login/ бы направить на login.php

Все остальное было бы направить на page.php и передать детали. Однако вместо этого все запросы направляются на страницу. Php

Что-то не хватает? :)

ответ

0

Думаю, у вас неправильное предположение, что порядок директив имеет значение, но на самом деле это не так. Nginx имеет строгий порядок выполнения директив, а «серверный уровень» rewrite работает до того, как он попытается сопоставить location.

Вам следует избегать «серверного уровня» rewrite. В этом случае я бы написал:

+0

@quardous вообще порядок не имеет значения. Существуют исключения и директивы из модуля перезаписи. Второй наиболее распространенным является regexp 'location's. –