ホームページ >バックエンド開発 >PHPチュートリアル >Nginx+CIで404エラーが発生する

Nginx+CIで404エラーが発生する

WBOY
WBOYオリジナル
2016-07-29 09:00:45953ブラウズ

最近CIフレームワークを学び、簡単なプロジェクトを作成しました。ローカルサーバーの環境を調整しましたが、リモートサーバーにデプロイすると、

http://example.com/(index.php)/にアクセスできます。 (設定されたデフォルトのコントローラークラスの場合)

http://example.com/(index.php)/[コントローラークラス]/[コントローラーメソッド] にアクセスできません (プロンプト404エラー!)

最後にBaidu の理由:

/index.php/abc のような URL の場合、Apache と Lighttpd はそれを「index.php?abc」として解釈しますが、nginx はリクエストが「index.php?abc」という名前のディレクトリに対するものであると判断します。 php」 abcファイル

の内容。したがって、CI は書き換えを構成しないと nginx では実行できませんが、Apache および Lighttpd では正常に動作します。

解決策 (強調は太字、強調は

):

<span> 1</span><span>  server {
</span><span> 2</span>         listen 80<span>;
</span><span> 3</span>         server_name example.com<span>;
</span><span> 4</span>         root /data/wwwroot/example/<span> 5</span>         index index.php index.html index.<span>htm;
</span><span> 6</span><span> 7</span>         location ~* \.(css|js|swf|htm|jpg|png|gif|json|atlas)?<span>$ {
</span><span> 8</span><span>            expires 1d;
</span><span> 9</span>             add_header Pragma <span>public</span><span>;
</span><span>10</span>             add_header Cache-Control "public"<span>;
</span><span>11</span><span>        }
</span><span>12</span><span>13</span>         location /<span>controller-class</span>/<span> {
</span><span>14</span><span>if</span> (!-e <span>$request_filename</span><span>) {
</span><span>15</span>                 rewrite ^/<span>controller-class</span>/(.*)$  /<span>controller-class</span>/index.php?q=<span>$uri</span>&<span>$args</span><span>;
</span><span>16</span><span>            }
</span><span>17</span><span>        }
</span><span>18</span><span>19</span>         location ~ \.<span>php$ {
</span><span>20</span>             fastcgi_pass   127.0.0.1:9000<span>;
</span><span>21</span>             fastcgi_index  index.<span>php;
</span><span>22</span>             fastcgi_param  SCRIPT_FILENAME  <span>$document_root$fastcgi_script_name</span><span>;
</span><span>23</span>                         fastcgi_param  PHP_VALUE        open_basedir=<span>$document_root</span>:/tmp/:/proc/<span>;
</span><span>24</span><span>include</span><span>        fastcgi_params;
</span><span>25</span><span>        }
</span><span>26</span><span>27</span>     }

参考: http://www.2cto.com/os/201301/185926.html [Nginx+CI 質問で 404 エラーが発生しました】

上記では、Nginx+CI の 404 エラーについて、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。

🎜
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。