加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

从$到$.php添加重写后,nginx CSS中断

发布时间:2020-12-13 20:59:14 所属栏目:Nginx 来源:网络整理
导读:如果将以下行添加到我的nginx配置中,它将破坏我的网站并且将在没有CSS的情况下运行: location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|svg|xml)${ access_log off; expires 30d;}location / { try_files $uri $uri/ $uri.php =404; rewrite ^/(.+)$/$1.php la

如果将以下行添加到我的nginx配置中,它将破坏我的网站并且将在没有CSS的情况下运行:

location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|svg|xml)${
  access_log        off;
  expires           30d;
}

location / {
    try_files $uri $uri/ $uri.php =404;
    rewrite ^/(.+)$/$1.php last;
}

location ~ .php${
    fastcgi_split_path_info ^(.+.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
}

如果我评论重写条件,一切都会正常.

我该怎么做才能使这两件事,重写条件和CSS样式表都起作用?

编辑:我遇到了一个新问题,现在所有的test.php之类的文件都可以正常工作,而无需编写.php,但是像users /这样的文件夹却无法正常工作,我仍然可以查看未找到的文件,通常它应该使用index.php或index.文件夹中的html,我该如何提供这两种功能?将.php添加到文件并从文件夹使用inde.php / html?

最佳答案
您可以将try_files分开并重写,方法是将位置/块替换为以下两个位置块:

location / {
    try_files $uri $uri/ @rewriterules;
}

location @rewriterules { 
    rewrite ^/(.+)$/$1.php last;
}

这样,try_files首先运行,如果找不到文件,则会进行重写,然后将.php添加到请求中,然后由.php位置块执行,而该块无需修改.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读