本文作者:DurkBlue

nginx 将访问/fljc/public/下的所有除了css和js文件和图片资源之外 路由自动重写/fljc/public/index.php/下所有响应路径推荐

DurkBlue 昨天 286
nginx 将访问/fljc/public/下的所有除了css和js文件和图片资源之外 路由自动重写/fljc/public/index.php/下所有响应路径摘要: 要实现当访问 Nginx 服务器上的 /fljc/public/ 目录时,自动重写路由(即除了 CSS、JS 文件和图片资源之外的重定向),你可以使用 Ngin...

要实现当访问 Nginx 服务器上的 /fljc/public/ 目录时,自动重写路由(即除了 CSS、JS 文件和图片资源之外的重定向),你可以使用 Nginx 的 try_files 指令和 location 块来配置。这种方法可以确保除了特定类型的文件外,其他请求都会被重定向到一个特定的处理程序或URL。

以下是一个配置示例,假设你想要将所有非CSS、JS和图片的请求重定向到你的应用的主入口文件(例如 index.php):


server {
    listen 80;
    server_name yourdomain.com;
    root /path/to/fljc/public;
    index index.php index.html index.htm;
   # 是这两个开始
location /fljc/public/ {
        rewrite ^/fljc/public/(.*)$ /fljc/public/index.php/$1 last;
    }
location ~ \.(jpg|jpeg|png|gif|ico|css|js)$ {
        try_files $uri =404;
        expires 30d;
    }
  # 是这两个结束
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据你的PHP版本和配置调整
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}



解释:

  1. ‌根目录配置‌:root /path/to/fljc/public; 指定了 Nginx 的根目录。

  2. ‌主位置块‌ (location /fljc/public):


    • rewrite ^/fljc/public/(.*)$ /fljc/public/index.php/$1 last; 将所有非静态文件的请求重写到 index.php,并通过 $1 捕获原始URI。last 指令告诉 Nginx 使用新的 URI 重新执行请求。

  3. ‌静态文件处理‌:

    • location ~ \.(jpg|jpeg|png|gif|ico|css|js)$ 匹配图片、CSS 和 JS 文件,并设置它们过期时间为30天。如果文件不存在,返回404。

  4. ‌PHP 处理‌:

    • location ~ \.php$ 用于处理 PHP 文件,通过 fastcgi_pass 指令将请求传递给 FastCGI 服务器(如 PHP-FPM)。

通过这种方式,所有对 /fljc/public/ 的请求(除了 CSS、JS 和图片文件)都会被重定向到 index.php,从而实现你的需求。确保根据你的实际目录结构和 PHP-FPM 配置调整路径和参数。




此篇文章由DurkBlue发布,转载请注明来处
文章投稿或转载声明

来源:DurkBlue版权归原作者所有,转载请保留出处。本站文章发布于 昨天
温馨提示:文章内容系作者个人观点,不代表DurkBlue博客对其观点赞同或支持。

赞(0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享