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

Nginx中移除URL中的index.php并实现301重定向

Nginx 301重定向去除URL中的index.php前缀

要实现将带index.php的URL(如https://www.example.com/index.php/author/article-title)301永久重定向到干净的URL(https://www.example.com/author/article-title),同时保证正确URL正常访问,你需要替换原有错误的Nginx规则,使用以下配置:

# 匹配带index.php的URL,捕获后续路径并301重定向
location ~* ^/index.php(/.*)$ {
    return 301 $scheme://$host$1;
}

# 处理正常URL的路由逻辑(适配PHP应用)
location / {
    try_files $uri $uri/ /index.php$is_args$args;
}

# PHP文件的常规处理配置(根据你的环境调整)
location ~ \.php$ {
    fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

配置说明

  • 第一个正则location:不区分大小写匹配所有以/index.php开头的URL,通过(/.*)$捕获index.php之后的完整路径(如/author/article-title),存入变量$1。
  • return 301指令:生成永久重定向响应,将URL替换为域名+捕获的路径,彻底去除index.php前缀。
  • 第二个location /:确保不带index.php的正常URL能正确路由到后端PHP脚本处理,避免404错误。
  • PHP处理配置:根据你的PHP版本、FPM套接字路径调整,保证PHP应用能正常解析请求。

原有规则的问题

你之前的try_files用法错误:try_files不支持在参数中写入正则表达式,且未正确捕获和传递路径参数,导致Nginx无法匹配到有效资源,最终返回500服务器错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 04:02:03