nginx переписать вопрос - PullRequest
       6

nginx переписать вопрос

1 голос
/ 09 ноября 2010

У меня есть простое правило перезаписи nginx:

    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php$1 break;
    }

Он отлично работает с URL-адресами, такими как http://mydomain.com/controller/action,, однако, когда запрошенный URL-адрес имеет вид

    http://mydomain.com/index.php/controller/action 

не удалось распознать, что index.php является существующим файлом, и в этом случае перезапись не должна выполняться.

Как я могу это исправить? Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 09 ноября 2010

Вам понадобится регулярное выражение, которое говорит "любая строка, которая не содержит .php", например так:

^((?!\.php).)*$

Если это приводит к ошибкам из-за того, что php-файл не существует, вам нужно использовать пользовательскую ошибку 404 для перенаправления вашего пользователя в другое место.

...