I’m attempting to use Nginx to server a CodeIgniter Script.
Code Igniter uses SEO Friendly scripts (AKA, only uses / instead of ?)
This works fine when I try and use it on Apache. Trying to setup my
own VPS with Code Igniter through NGINX only leans to a pain.
The server is setup with the base folder being a phpbb form, and a
codeigniter script in the folder /fg152/
I’m trying to get the nginx to recognize that index.php/login is
supposed to be a query for code igniter, not a file of its own.
I tried every configuration on this link.
http://codeigniter.com/forums/viewthread/90231/
My current Nginx conf looks like this.
location /fg152/ {
root /home/sites/domain/fg152/;
index index.php;
try_files $uri $uri/ /fg152/index.php;
}
location / {
root /home/sites/domain/;
index index.php index.html index.htm;
# PHPBB SEO REWRITE RULES - ADVANCED
# AUTHOR : dcz www.phpbb-seo.com
# STARTED : 01/2006
rewrite
^/(forum|[a-z0-9_-]-f)([0-9]+)/?(page([0-9]+).html)?$
/viewforum.php?f=$2&start=$4 last;
rewrite
^/(forum|[a-z0-9_-]-f)([0-9]+)/(topic|[a-z0-9_-]-t)([0-9]+)(-([0-9]+))?.html$
/viewtopic.php?f=$2&t=$4&start=$6 last;
rewrite
^/([a-z0-9_-])/?(topic|[a-z0-9_-]-t)([0-9]+)(-([0-9]+))?.html$
/viewtopic.php?forum_uri=$1&t=$3&start=$5 last;
rewrite
^/resources/[a-z0-9_-]+/(thumb/)?([0-9]+)$
/download/file.php?id=$2&t=$1 last;
rewrite ^/member/([^/]+)/?$
/memberlist.php?mode=viewprofile&un=$1 last;
rewrite
^/member/([^/]+)/(topics|posts)/?(page([0-9]+).html)?$
/search.php?author=$1&sr=$2&start=$4 last;
rewrite
^/(group|[a-z0-9_-]-g)([0-9]+)(-([0-9]+))?.html$
/memberlist.php?mode=group&g=$2&start=$4 last;
rewrite ^/post([0-9]+).html$
/viewtopic.php?p=$1 last;
rewrite ^/active-topics(-([0-9]+))?.html$
/search.php?search_id=active_topics&start=$2&sr=topics last;
rewrite ^/unanswered(-([0-9]+))?.html$
/search.php?search_id=unanswered&start=$2&sr=topics last;
rewrite ^/newposts(-([0-9]+))?.html$
/search.php?search_id=newposts&start=$2&sr=topics last;
rewrite ^/unreadposts(-([0-9]+))?.html$
/search.php?search_id=unreadposts&start=$2 last;
rewrite ^/the-team.html$
/memberlist.php?mode=leaders last;
rewrite
^/([a-z0-9_-]+)/?(page([0-9]+).html)?$
/viewforum.php?forum_uri=$1&start=$3 last;
rewrite
^/.+/(style.php|ucp.php|mcp.php|faq.php|download/file.php)$ /$1
last;
if (!-e $request_filename) {
rewrite
^/([a-z0-9_/-]+)/?(page([0-9]+).html)?$
/viewforum.php?forum_uri=$1&start=$3 last;
break;
}
# END PHPBB PAGES
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# A handy function that became available in 0.7.31 that breaks
down
# The path information based on the provided regex expression
# This is handy for requests such as file.php/some/paths/here/
fastcgi_param PATH_INFO
$fastcgi_path_info;
fastcgi_param PATH_TRANSLATED
$document_root$fastcgi_path_info;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD
$request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME
$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT
$document_root;
fastcgi_param SERVER_PROTOCOL
$server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_pass unix:/etc/phpcgi/php-cgi.socket;
fastcgi_index index.php;
}
Now. This lets the script work. Instead of giving 404 on
/fg152/index.php/login it shows the login page. EXCEPT the images do
not log. Huge problem there.
The images are located at /fg152/application/views/images/
And the login.php that its calling is located at
/fg152/application/controllers/
If I remove the location /fg152/ it will show up with the image files
again (But the rest gets a 404 error
I’ve tried using
location /fg152r/ {
if (-f $request_filename) {
expires max;
break;
}
if (!-e $request_filename) {
rewrite ^/fg152/(.*)$ /fg152/index.php/$1 last;
}
}
Still no luck. What can I do to resolve this issue and get both php
and image files working?