#独家
NGINX实现站点的伪静态规则

2025-07-28 0 314
在 NGINX 中实现伪静态主要是通过rewrite指令或者location块来重写 URL。以下是一些常见的伪静态规则配置示例,你可以根据自己的需求进行调整。
NGINX实现站点的伪静态规则

基本伪静态规则

将动态 URL 转换为静态形式,例如将index.php?id=123转换为article/123.html
server {
    listen 80;
    server_name example.com;
    root /path/to/your/website;
    
    # 启用PHP支持
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    
    # 伪静态规则:将/article/123.html重写为index.php?id=123
    location /article/ {
        rewrite ^/article/([0-9]+)\.html$ /index.php?id=$1 last;
    }
    
    # 其他静态文件直接访问
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires max;
        log_not_found off;
    }
}

WordPress 伪静态规则

WordPress 默认使用动态 URL,通过以下规则可以启用漂亮的永久链接:
server {
    listen 80;
    server_name example.com;
    root /path/to/wordpress;
    
    index index.php index.html;
    
    # 启用PHP支持
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    
    # WordPress伪静态规则
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    
    # 静态文件缓存
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires max;
        log_not_found off;
    }
}

自定义多参数伪静态

对于包含多个参数的 URL,可以使用更复杂的重写规则。例如,将product.php?cat=1&item=23转换为product/cat1/item23.html
server {
    listen 80;
    server_name example.com;
    root /path/to/your/website;
    
    # 启用PHP支持
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    
    # 多参数伪静态规则
    location /product/ {
        rewrite ^/product/cat([0-9]+)/item([0-9]+)\.html$ /product.php?cat=$1&item=$2 last;
    }
    
    # 静态文件处理
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires max;
        log_not_found off;
    }
}

注意事项

  1.修改 NGINX 配置后,需要重新加载配置:
sudo nginx -s reload
  2.确保服务器有足够的权限访问网站文件。
  3.如果规则不生效,检查 NGINX 错误日志:
tail -f /var/log/nginx/error.log
  1. 使用last标记终止当前规则集的处理,使用break终止当前location块的处理。
  2. 复杂的重写规则可能会影响性能,尽量保持规则简洁。

 

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

精码云库 技术分享 NGINX实现站点的伪静态规则 https://www.jmkuc.com/1529.html

下一篇:

已经没有下一篇了!

常见问题
  • 可能原因有:一是您的解压软件版本较低,不支持该压缩格式,建议更新解压软件至最新版;二是下载过程中文件损坏,您可尝试删除原文件,重新下载;若多次重新下载仍解压失败,可能是资源本身存在问题,请联系我们反馈,我们会尽快核实处理。
查看详情
  • 出现此情况,大概率是页面样式冲突所致。部分浏览器可能对某些 CSS 样式兼容性欠佳,当文章内复杂样式相互作用时,就可能导致布局异常。您可尝试刷新页面,若问题依旧,可切换到其他主流浏览器访问;或者检查您浏览器是否有安装可能干扰页面显示的插件,暂时禁用后再尝试浏览。
查看详情
  • 您可先在本站搜索栏输入相关关键词,筛选是否有对应源码的其他版本资源。若未找到,您可以通过 “问题反馈” 板块,向我们详细说明需求,包括文章名称、所需源码版本及用途等,我们会根据情况在后续资源整理中,优先为您补充相关版本资源。
查看详情
  • 可能是由于运行环境不匹配,如编程语言版本、依赖库缺失或版本不一致导致。您可先检查文章中是否有注明运行环境要求,按照要求配置;也可尝试在本站技术交流区搜索报错关键词,查看其他用户的解决方案;若仍无法解决,欢迎通过 “问题反馈” 提交报错信息和运行环境说明,我们将协助排查 。
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务