Heim > php教程 > php手册 > Hauptteil

Nginx+CI出现404错误,nginxci404错误

WBOY
Freigeben: 2016-06-13 08:45:12
Original
1448 Leute haben es durchsucht

Nginx+CI出现404错误,nginxci404错误

最近刚学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 <strong>example.com</strong><span>;
</span><span> 4</span>         root <strong>/data/wwwroot/example/</strong><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><strong>controller-class</strong></span>/<span> {
</span><span>14</span>             <span>if</span> (!-e <span>$request_filename</span><span>) {
</span><span>15</span>                 rewrite ^/<span><strong>controller-class</strong></span>/(.*)$  /<strong><span>controller-class</span></strong>/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错误问题】
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 Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage