Heim > Backend-Entwicklung > PHP-Tutorial > Nginx+CI出现404错误

Nginx+CI出现404错误

WBOY
Freigeben: 2016-07-29 09:00:45
Original
949 Leute haben es durchsucht

最近刚学ci框架,做了个简单的项目,在本地搭服务器的环境都调通了,但是部署到远程服务器时:

http://example.com/(index.php)/ 可以访问(为配置的默认controller-class)

http://example.com/(index.php)/[controller-class]/[controller-method] 不可以访问(提示404错误!)

最后百度原因:

对于/index.php/abc这种url,Apache和Lighttpd会按”index.php?abc”来解释,而nginx会认为是请求名字是“index.php”的目录下的abc文件的内容。所以CI在nginx下不配置rewrite是无法运行的,而在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>     }
Nach dem Login kopieren

参考资料:http://www.2cto.com/os/201301/185926.html【Nginx+CI出现404错误问题】

以上就介绍了Nginx+CI出现404错误,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage