zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    中断一个telnet连接
    QQ提示应用程序并行配置不正确,绿色版QQ不能运行解决方法
    新劳动合同法今起实施 正式工与派遣工同工同酬
    最详细的装修施工顺序
    最好的前端hacking备忘录——集锦
    基于vue配置axios
    Vue 实现loading进度条
    Vue 实现countDown倒计时
    使用mongoose操作mongodb数据库
    Vue项目之IE下打开页面是空白
  • 原文地址:https://www.cnblogs.com/jenqz/p/4334435.html
Copyright © 2011-2022 走看看