2016-05-12 39 views
0

Ich führe CodeIgniter 3.0.6 in einem Nginx-Server und Unterpfade am Ende /index.php statt /<installdir>/index.php. Also, wenn ich nach /CodeIgniter-3.0.6/home/ frage, bekomme ich stattdessen die /index.php Seite statt /CodeIgniter-3.0.6/index.php wie erwartet. Beachten Sie, dass sich meine CodeIgniter-Anwendung möglicherweise in /2016/ befindet.CodeIgniter ruft /index.php anstelle von /basefolder/index.php auf Nginx auf?

Ich vermute, dass dies auf eine Fehlkonfiguration meiner Nginx-Installation zurückzuführen ist, anstatt etwas CodeIgniter verwandt? Meine Nginx-Installation läuft unter Ubuntu 16.04. Der Inhalt der Datei/etc/nginx/sites-enabled/default sind:

location/{ 
    try_files $uri $uri/ /index.php; 
} 

location ~ \.php$ { 
    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; 
    include fastcgi.conf; 
} 

Gibt es etwas, muss ich sonst noch zu ändern werden?

+0

Benötigen Sie '/ index.php' oder können Sie einfach den' try_files' Standard ändern? Weitere Informationen finden Sie in diesem Dokument (http://nginx.org/en/docs/http/ngx_http_core_module.html#try_files). –

+0

Ich werde ohne versuchen. Ich habe mich auf einige andere Beispiele gestützt. –

Antwort

0

Wenn der Server eine einzelne Anwendung mit dem Haupteintrittspunkt bei /CodeIgniter-3.0.6/index.php hat, sollten Sie wahrscheinlich Ihre Standorte wie folgt festgelegt:

location/{ 
    try_files $uri $uri/ /CodeIgniter-3.0.6/index.php; 
} 
location ~ \.php$ { 
    try_files $uri =404; 
    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; 
    include fastcgi.conf; 
} 

Auf diese Weise jede URI, die keine Übereinstimmung für eine Ressource-Datei ist oder Eine .php Datei wird an den Standard-Eingangspunkt Ihrer Anwendung weitergeleitet: /CodeIgniter-3.0.6/index.php.

Allerdings, wenn es mehr als eine Anwendung ist, so dass /index.php und /CodeIgniter-3.0.6/index.php sind zwei unterschiedliche Einstiegspunkte, Sie möchten Standorte für jede Anwendung einzurichten, möglicherweise wie folgt aus:

location/{ 
    try_files $uri $uri/ /index.php; 
} 
location /CodeIgniter-3.0.6 { 
    try_files $uri $uri/ /CodeIgniter-3.0.6/index.php; 
} 
location ~ \.php$ { 
    try_files $uri =404; 
    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; 
    include fastcgi.conf; 
} 

Auf diese Weise, Nur URIs, die mit /CodeIgniter-3.0.6 beginnen, werden an den Standardeinstiegspunkt dieser Anwendung weitergeleitet.

Verwandte Themen