2016-05-12 4 views
0

NginxサーバーでCodeIgniter 3.0.6を実行しており、サブパスが/<installdir>/index.phpではなく/index.phpになります。だから、私が/CodeIgniter-3.0.6/home/を要求すると、代わりに/index.phpページが提供されます。代わりに、/CodeIgniter-3.0.6/index.phpは期待どおりです。私のCodeIgniterアプリケーションは最終的に/2016/に存在することに注意してください。CodeIgniterはNginxの/basefolder/index.phpの代わりに/index.phpを呼び出しますか?

私はこれが、何かCodeIgniterに関連するものではなく、私のNginxインストールの設定ミスにつながっていると思われますか?私のNginxのインストールはUbuntu 16.04で実行されています。/etc/nginx/sites-enabled/defaultの内容は次のとおりです。

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

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

変更が必要なことはありますか?

+0

'/ index.php'が必要ですか、' 'try_files''のデフォルトを変更するだけですか?詳細については、[このドキュメント](http://nginx.org/en/docs/http/ngx_http_core_module.html#try_files)を参照してください。 –

+0

私は試してみます。私は他のいくつかの例に基づいていました。 –

答えて

0

サーバーが/CodeIgniter-3.0.6/index.phpのメインエントリポイントを持つ単一のアプリケーションを持っている場合、あなたはおそらく、このようなあなたの場所を設定する必要があります。

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; 
} 

こうすることで、任意のURIリソースファイルの一致ではありませんか.phpファイルは、アプリケーションのデフォルトエントリポイント/CodeIgniter-3.0.6/index.phpにルーティングされます。

/index.php/CodeIgniter-3.0.6/index.phpは、二つの別個のエントリポイントとなるように複数のアプリケーションがある場合は、あなたは、おそらくこのように、各アプリケーションの場所を設定することもできます。

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; 
} 

その方法を、 /CodeIgniter-3.0.6で始まるURIだけが、そのアプリケーションのデフォルトエントリポイントにルーティングされます。

関連する問題