You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:将Apache .htaccess规则转换为适配的Nginx配置指令

Apache 重写规则转Nginx适配方案

原规则核心逻辑

你提供的.htaccess规则实现的是单入口PHP系统的URL重写能力:

  • 重写基准路径为/public
  • 根路径请求统一交由index.php处理
  • 若请求路径不对应服务器上真实存在的文件或目录,全部转发到index.php携带原请求路径做路由解析

修改后可直接使用的Nginx配置

注意:配置前请确认你站点public目录的实际绝对路径,替换下方root配置项的路径值

server {
        listen 80;
        # 站点根目录指向public目录,符合原RewriteBase规则的路径基准,同时避免上层敏感文件被外网访问
        root /var/www/html/public;
        index index.php index.html index.htm;
        server_name myhost.com;

        location / {
            # 按顺序匹配真实文件、真实目录,匹配不到则转发到入口文件处理
            try_files $uri $uri/ /index.php$is_args$args;
        }

        # 兼容pathinfo格式,适配index.php/xxx这类请求传递
        location ~ [^/]\.php(/|$) {
            include snippets/fastcgi-php.conf;
            fastcgi_split_path_info ^(.+?\.php)(/.*)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
            try_files $fastcgi_script_name =404;
        }
}

配置生效操作

  • 保存配置文件后,执行nginx -t命令校验配置语法,确认无报错
  • 语法校验通过后,执行systemctl reload nginx重载Nginx配置即可生效

如果你因为特殊部署要求不能把站点根目录指向public文件夹,可将root改回原/var/www/html路径,同时把location /块下的try_files规则替换为try_files $uri $uri/ /public/index.php$is_args$args;即可实现相同效果。

内容的提问来源于stack exchange,提问作者Farukh Zahoor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 01:15:39