Я пробую 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, и мне нужна помощь в выяснении конфликта этого каталога с именем контроллера. Я понял эту конфигурацию из различных источников в Интернете, и я очень благодарен за любой лучший способ написания моей конфигурации.