摘要:
要实现当访问 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;
}
}解释:
根目录配置:
root /path/to/fljc/public;指定了 Nginx 的根目录。主位置块 (
location /fljc/public):rewrite ^/fljc/public/(.*)$ /fljc/public/index.php/$1 last;将所有非静态文件的请求重写到index.php,并通过$1捕获原始URI。last指令告诉 Nginx 使用新的 URI 重新执行请求。静态文件处理:
location ~ \.(jpg|jpeg|png|gif|ico|css|js)$匹配图片、CSS 和 JS 文件,并设置它们过期时间为30天。如果文件不存在,返回404。PHP 处理:
location ~ \.php$用于处理 PHP 文件,通过fastcgi_pass指令将请求传递给 FastCGI 服务器(如 PHP-FPM)。
通过这种方式,所有对 /fljc/public/ 的请求(除了 CSS、JS 和图片文件)都会被重定向到 index.php,从而实现你的需求。确保根据你的实际目录结构和 PHP-FPM 配置调整路径和参数。


