首页
学习
活动
专区
圈层
工具
发布

nginx的try_files指令实现隐藏index.php的重写

1.nginx的try_files指令 ,核心功能是替代rewrite,并且比rewrite更强大的是可以按顺序查找文件是否存在,如果文件都找不到才会执行最后的重定向 解决的问题是,如果一个网站的部署是如下结构...: css/ js/ index.php login.php setting.php 2.当有接口的地址是 index.php/article/2 ,这样的path_info模式时,需要隐藏掉index.php...,变成/article/2 直接使用rewrite会影响到当前目录的其他文件因为如果访问/login.php ,会被重定向成index.php/login.php,访问目录的时候/css/,会被重定向成...index.php/css/ 3.此时使用try_files就能解决,它会先检查前两个是否存在,如果存在就直接访问文件和目录,如果不存在才会执行后面的重定向 try_files $uri $uri/ /...q=$uri&$args; 4.当部署wordpress在网站子目录时 /wordpress/ ,可以配合location,实现上面的try_files重定向到/wordpress/ 目录里的index.php

1.8K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Nginx作为静态资源服务器

    Nginx是一个轻量、高性能的服务器,平时除了可以作为反向代理服务器外,我们还可以将其作为一个静态资源服务器: 与mkdocs一起使用,可以变成个人博客 可以发布静态资源,比如文件、图片等供他人下载;...一般我们可能会有一堆资源,比如在/www/data/images/目录中可能存在成百上千的图片,这时候可以让Nginx自动生成index.html并返回给客户端(不会落盘): location /images...尝试多种选择 try_files指令可以检查指定的文件或目录是否存在,如果不存在则触发内部重定向,或者返回错误码。...也可以用=code的方式来返回错误码,而不是内部重定向: location / { try_files $uri $uri/ $uri.html =404; } 如上所示,如果访问的文件不存在,...内部重定向也支持命名location: location / { try_files $uri $uri/ @backend; } location @backend { proxy_pass

    46510

    Vue+Koa2 前后端分离项目线上部署

    /app.6b18b5b0.css rel=preload as=style> css/chunk-elementUI.43fc3011.css rel=preload...第二个块的路径是 admin,所以输入域名 + /admin/ 之后,访问的是现在部署的这个项目,注意,正如前面所说的,这里的 location 路径务必和之前前端项目配置的路径保持一致;第三个块是做重定向用的...前面我们在 Nginx 的文件里配置过 try_files —— 如果找不到入口文件,就会使用 fallback,返回一个默认的 index.html(或者是 404.html),但是因为向服务端请求的是...指令配置的重定向,而 cycle 指的是陷入了循环。...唯一的解释就是这个路径本身就是错的,因为找不到这个路径下的 html 文件,所以又再次发生了重定向,最后陷入了循环。经过检查,确实是路径的问题,这里应该用绝对路径,前面少了一个 /home。

    2.7K30

    Linux 下 Nginx + PHP 环境的配置

    后端返回的响应,可以是一段 HTML/CSS/JavaScript 代码、也可以是一张图片、一段音频、或者是一个个不同类型的文件。...我们可以通过重定向的操作,把 PHP 解释器的标准输出流重定向到别的地方,例如,我这里把它的输出结果重定向到与代码同目录的 result.txt 里面。...首先我们来看看PHP的架构图(图片来自鸟哥的博客 ps: PHP的鸟哥和写 Linux 私房菜的鸟哥不是同一个人哦) ?...最大的问题是,php-cgi 的配置不够人性化,主要体现在其修改 php.ini 后,不支持平滑重启,每次都要先停止服务再启动才能更新配置,这在某些场景下显然是很致命的。...参考科大LUG的一位老板踩过的 Nginx try_files 里的一个坑 – What's up, LUG Servers 回到刚刚的 try_files $fastcgi_script_name

    4.1K40

    Nginx常用变量和应用案例

    /debug.log debug; } try_files $uri $uri/ =404;}​#在这个配置中,如果请求的URL包含debug参数,Nginx将在/var/log/nginx/debug.log...try_files $uri $uri/ =404;}​#在这个配置中,如果请求的URL包含page=2参数,Nginx将会重定向用户到/page2.html。​...例如,你可能想要对静态资源(如 CSS、JavaScript、图像文件等)设置长时间的缓存,以减少返回同一资源的请求次数。你可以在 Nginx 配置中这样设置:location \~* \....permanent; } try_files $uri $uri/ =404;}​#在这个配置中,如果请求的URI为`/oldpage.html`,Nginx将会永久重定向用户到`/newpage.html...1.假设你想记录完整的请求URI,你可以这样配置:location / { access_log /var/log/nginx/access.log combined; try_files $uri

    2.2K30

    石火电光追风逐日|前端优化之次时代图片压缩格式WebP的项目级躬身实践(Python3 PIL+Nginx)

    Nginx针对Webp图片判断请求头来对老版本浏览器做向下兼容,实现Webp图片的无缝切换。    ...,如果带有webp,说明该浏览器支持webp,我们就由后端加载webp,如果头部没有webp字样,说明浏览器不支持,此时nginx继续加载原后缀文件,这也就是为什么之前在图片转换过程中要保留原始图片文件的原因...g)$ { add_header Vary Accept; try_files $uri$webp_suffix $uri =404; } include /etc/nginx...restart nginx.service     现在让我们来测试一下,以本站的logo图片为例子,如果是不支持webp格式的浏览器,比如低版本的Safari(13.0.3):     可以看到加载图片的类型保持了原图片后缀...结语:当然了,其实Nginx是可以对图片进行实时压缩的,但是那样需要单独安装模块以及其他服务的介入,这对于低版本服务器无疑是要耗费成本的,所以本方案就是通过python3脚本提前将图片转换好,再用nginx

    95930
    领券