Назад | Перейти на главную страницу

nginx codeigniter rewrite: имя контроллера конфликтует с каталогом

Я пробую nginx и портирую существующую конфигурацию apache на nginx. Мне удалось успешно перенаправить URL-адрес codeigniter, но у меня проблема с одним конкретным контроллером, имя которого совпадает с каталогом в корне сайта.

Мне удалось заставить мой URL-адрес codeigniter работать так же, как в Apache, за исключением того, что у меня есть конкретный URL-адрес http://localhost/hello что совпадает с hello каталог в корне сайта. У Apache с этим проблем не было. Но nginx направляет в этот каталог вместо контроллера.

Моя структура перенаправления как следует

http://host_name/incoming_url => http://host_name/index.php/incoming_url

Все файлы codeigniter находятся в корне сайта.

Моя конфигурация nginx (соответствующие части)

location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to index.html

    index index.php index.html index.htm;

    try_files $uri $uri/ /index.php/$request_uri;

    #apache rewrite rule conversion

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

    # Uncomment to enable naxsi on this location
    # include /etc/nginx/naxsi.rules
}

location ~ \.php.*$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

    # With php5-cgi alone:
    fastcgi_pass 127.0.0.1:9000;
    # With php5-fpm:
    #fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
}

РЕДАКТИРОВАТЬ:

моя соответствующая конфигурация apache htaccess

    # Set the default file for indexes
DirectoryIndex index.php

<IfModule mod_rewrite.c>
    # mod_rewrite rules
    RewriteEngine on
    # If the file is NOT the index.php file
    RewriteCond %{REQUEST_FILENAME} !index.php
    # If the file/dir is NOT real go to index
    RewriteCond %{REQUEST_FILENAME} !-f
    #RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [QSA,L]

</IfModule>

Я новичок в nginx, и мне нужна помощь в выяснении конфликта этого каталога с именем контроллера. Я понял эту конфигурацию из различных источников в Интернете, и я очень благодарен за любой лучший способ написания моей конфигурации.