centos nginx环境下删除CI框架Index.php入口遇到404问题

今天在网上百度看了很多文章,想要去掉index.php入口文件有好多方法,自己也照着在网站到根目录下新建了一个.htaccess文件,内容如下:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond $1 !^(index\.php|images|robots\.txt)

RewriteRule ^(.*)$ /index.php/$1 [L]

意思是:

  • 第一行、将RewriteEngine引擎设置为on,就是让url重写生效;
  • 第二行、 如果文件存在,就直接访问文件,不进行下面的RewriteRule.
  • 第三行、 如果目录存在就直接访问目录不进行RewriteRule
  • 同理: RewriteCond %{REQUEST_URI} !^.*(\.css|\.js|\.gif|\.png|\.jpg|\.jpeg)$ #如果是这些后缀的文件,就直接
  • 访问文件,不进行Rewrite
  • 第四行、配置url重写规则,!^(index\.php|images|robots\.txt) 这个正则表达式指明了哪些文件不需要重写,而是直接访问;
  • 第五行、^(.*)$是一个正则表达式,意思是对所有请求都发送到/index.php/$1,熟悉url的人都知道,以反斜杠(/)开头的,都是相对路径,相对于谁呢?根,也就是网址。

原来自己到网站访问到URL是这样到:http://网址/index.php?/控制器/函数,现在想去掉index.php?,这里index.php后面还多了一个问号,好烦人的,结果文件建好后,输入网址访问,报了nginx 404错误,我的nginx是1.4.7版本

后来经过多方寻找,终于搞定了,打开nginx到配置文件nginx.conf,在server 部分加入以下命令

if (!-e $request_filename) { 
      rewrite ^.*$ /index.php last; 
    }

保存后,重启nginx (/etc/init.d/nginx restart) ,再输入没有带index.php?的网址,真到可以访问了

转自:http://www.350351.com/qianyanjishu/webkaifa/153745.html

时间: 2024-10-11 16:07:13

centos nginx环境下删除CI框架Index.php入口遇到404问题的相关文章

CENTOS php 7.0 +nginx 环境下 安装yaf框架

 #php -v PHP 7.0.19 (cli) (built: May 12 2017 21:01:27) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies #nginx -v nginx version: nginx/1.12.0 CentOS Linux release 7.2.1511 (Core) 本文前提是已搭建好ph

新安装的nginx环境下运行tp框架路由不能用的问题

location ~ \.php {    #去掉$ root          H:/PHPServer/WWW;  笔者这里默认是 html; fastcgi_pass   127.0.0.1:9000; fastcgi_index  index.php; fastcgi_split_path_info ^(.+\.php)(.*)$;     #增加这一句 fastcgi_param PATH_INFO $fastcgi_path_info;    #增加这一句 fastcgi_param

在nginx下去掉ci框架url中的index.php

ci框架默认的url规则中带有应用的入口文件,例如: example.com/index.php/news/article/my_article 在以上URL中带有入口文件index.PHP,这样的URL规则对搜索引擎来说是不友好的,那么如何去除这个index.php呢?apache环境下:通过 .htaccess 文件来设置一些简单的规则删除它.下面是一个例子,使用“negative”方法将非指定内容进行重定向: RewriteEngine on RewriteCond $1 !^(index

Nginx环境下配置PHP使用的SSL认证(https)

最近一段时间发现好多网站都从http协议变成了加密的https协议,比如说百度.吾志等等.https看起来比http高端了好多,而且在不同的浏览器向上还会显示出不同于http的URL展示效果(比如说chrome 和QQ浏览器 使用https协议的网址就会变色). 于是自己就想着把自己的网站加一个ssl证书,使之变成https://iwenku.net 最开始我使用的是腾讯云的服务器,服务器系统是Windows,使用Windows虽然坏处挺多,但是也有好处,那就是Windows是图形化界面的,这样

nginx环境下配置nagiosQL-关于nagiosql配置文件

接上文:nginx环境下配置nagios-关于nginx.conf nagiosql文件应该处于conf/domain/目录下 nagiosql配置如下: 1 server 2 { 3         listen       8088; 4         server_name  192.168.44.44; 5         index index.html index.htm index.php; 6         root  /usr/local/nagios/nagiosql/;

解决Nginx环境下WordPress后台缺少”Wp-Admin”路径

在nginx环境下访问有时访问wordpress后台会直接返回错误.仔细发现路径少了wp-admin,解决方法很简单在/usr/local/nginx/conf/wordpress.conf文件进行修改 location / { index index.html index.php; if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.ph

nginx环境下配置nagios-关于nagios配置文件nginx.conf

接上文:nginx环境下配置nagios-关于nginx.conf 配置如下: 1 server 2 { 3         listen       80; 4         server_name  192.168.44.44; 5         index index.html index.htm index.php; 6         root  /usr/local/nagios/share; 7         auth_basic "Nagios Access"; 

nginx环境下配置nagios-关于start_perl_cgi.sh

1 #!/bin/bash 2 set -x 3 dir=/export/servers/nginx 4  5 stop () 6 { 7 #pkill  -f  $dir/perl-fcgi.pl 8 kill $(cat $dir/logs/perl-fcgi.pid) 9 rm $dir/logs/perl-fcgi.pid 2>/dev/null10 rm $dir/logs/perl-fcgi.sock 2>/dev/null11 echo "stop perl-fcgi 

nginx环境下配置nagios-关于commands.cfg

nagios监控Linux/windows常用配置,以snmp.nrpe实现 1 # 'process-host-perfdata' command definition 2 define command{  3     command_name    process-host-perfdata  4     #command_line    /usr/bin/printf "%b" "$LASTHOSTCHECK$\t$HOSTNAME$\t$HOSTSTATE$\t$HO