nginx配置ThinkPHP Rewrite

server {
     listen       80;
     server_name  www.funsion.com;
     root /www/web/funsion;
     index  index.php;

     # 禁止访问应用目录中的php文件
     location ~* ^/application/.+\.php$ {
        #此目录下的.html要允许访问,因为静态html缓存也是在这个目录下生成
          return  403;
     }

     location ~*  ^/application/Tpl/.+\.html$ {
          return  403;         # 禁止访问模板目录下的html文件
     }

     # 禁止访问ThinkPHP目录中的文件
     location ~* ^/ThinkPHP/.+\.(php|tpl|html)$ {
          return  403;
     }

     location / {
         # ThinkPHP Rewrite, 除以上指定的静态资源外,其它的请求才有必要进行判断
         if (!-e $request_filename){
             rewrite ^/(.*)$ /index.php/$1 last;
         }
     }     

     location ~ \.php($|/){
         #配置PHP支持PATH_INFO进行URL重写
         set $script     $uri;
         set $path_info  "";
         if ($uri ~ "^(.+?\.php)(/.+)$") {
             set $script     $1;
             set $path_info  $2;
         }
         fastcgi_pass   127.0.0.1:9000;
         fastcgi_index  index.php;
         include fcgi.conf;
         fastcgi_param  SCRIPT_FILENAME        $document_root$script;
         fastcgi_param  SCRIPT_NAME            $script;
         fastcgi_param  PATH_INFO              $path_info;
     }     

     location ~* .+\.(gif|jpg|jpeg|png|bmp|swf) {
           expires      7d;
     }    

     location ~* .+\.(js|css) {
           # 缓存一年,文件每次修改后需要在URL中加入时间戳,否则会读取缓存
           expires      1y;
     } 

}
时间: 2024-10-12 03:34:34

nginx配置ThinkPHP Rewrite的相关文章

nginx 配置 ThinkPHP Rewrite

server { listen 80; server_name www.funsion.com; root /www/web/funsion; index index.php; location / { # 不带www的时候,自动加上www if ($host !~ '^www') { rewrite "^/(.*)$" http://www.$host/$1 permanent; } if (!-e $request_filename){ rewrite ^/(.*)$ /index

Nginx配置的rewrite编写时last与break的区别详解

rewite 1. server块中的rewrite: 在server块下,会优先执行rewrite部分,然后才会去匹配location块 server中的rewrite break和last没什么区别,都会去匹配location,所以没必要用last再发起新的请求,可以留空. 2. location中的rewirte: 不写last和break -    那么流程就是依次执行这些rewrite 1. rewrite break -        url重写后,直接使用当前资源,不再执行loca

nginx 配置thinkphp 隐藏index.php 并支持pathinfo

if (!-e $request_filename) { rewrite ^/index.php(.*)$ /index.php?s=$1 last; rewrite ^(.*)$ /index.php?s=$1 last; break; } location ~ .*\.(php|php5)?$ { #fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcg

Nginx中的Rewrite的重定向配置与实践

阅读目录 一:理解地址重写 与 地址转发的含义. 二:理解 Rewrite指令 使用 三:理解if指令 四:理解防盗链及nginx配置 简介:Rewrite是Nginx服务器提供的一个重要的功能,它可以实现URL重定向功能. 回到顶部 一:理解地址重写 与 地址转发的含义. 地址重写与地址转发是两个不同的概念. 地址重写 是为了实现地址的标准化,比如我们可以在地址栏中中输入 www.baidu.com. 我们也可以输入 www.baidu.cn. 最后都会被重写到 www.baidu.com 上

配置nginx支持thinkphp框架

因为nginx本身没有支持pathinfo,所以无法使用thinkphp框架,不过我们可以在配置里进行修改使其能够正常使用thinkphp. 1.修改配置支持pathinfo vi /etc/nginx/cong.d/default.conf 在nginx的配置中添加 location ~ \.php/?.*$ {      root html;         #这里的路径需要注意一下,自己之前几次配置错误都是因为从网上直接粘贴的路径不对        fastcgi_pass   127.0

thinkphp nginx php-fpm url rewrite 导致 404 错误

thinkphp nginx php-fpm url rewrite 导致 404 错误 之前thinkphp的系统部署在apache上,考虑到在并发性能nginx比apache强悍得多,所以在centos上以 nginx+php-fpm模式重新部署了thinkphp系统,结果发现诸如 1 /index.php/home/user/verify 此类的url nginx会报404错误,但是改成 1 /index.php?s=/home/user/verify 之后却能够访问,这说明前一种url

nginx 配置rewrite

先说自己的情况,目前富乔使用的是lnmp一键包,解决步骤如下: 1.打开/usr/local/nginx/conf/nginx.conf   文件,在server段中,access_log句子前加入以下代码 location /ck/cashier/ { if (!-e $request_filename){ rewrite ^/ck/cashier/(.*)$ /ck/cashier/index.php?s=/$1 last; } } 其中/ck/cashier/  为二级目录,可根据自己的项

nginx 配置web 虚拟目录 并且codeIgniter,thinkphp 重新url 地址

nginx 配置虚拟目录并且url 重写 server { #侦听80端口 listen 8090; #定义使用www.xx.com访问 server_name 127.0.0.1; #设定本虚拟主机的访问日志 access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; root /home/lxy/www/cs/; #定义服务器的默认网站根目录位置 #默认请求 location / { index inde

TP3.2 Nginx下配置ThinkPhp多入口访问

thinkphp多入口配置后,入口index.php指向应用目录=>app,入口admin.php指向后台管理目录=>admin在nginx下设置伪静态(在nginx的配置文件中): #ThinkPHP REWRITE支持if (!-e $request_filename) {rewrite ^/(.*)$ /index.php?s=$1 last;} 配置后,www.abc.com/index.php可以正常访问,www.adc.com/admin.php访问文件不存在错误! 解决方案:一个