如果将以下行添加到我的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位置块执行,而该块无需修改.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。