如何修改代码移除网站URL中的index.php?附Nginx配置尝试记录
解决Nginx移除URL中index.php的配置方案
要移除网站URL里的index.php,你需要在Nginx的server块中添加URL重定向和请求转发两部分核心配置,替代你之前尝试的无效代码:
1. 重定向带index.php的URL到干净路径
这一步会让用户访问http://你的域名/index.php/xxx时,自动跳转到http://你的域名/xxx,彻底消除带index.php的URL:
# 重定向移除index.php if ($request_uri ~* "^/index.php/(.*)$") { return 301 /$1; }
2. 处理无index.php的请求转发到PHP
用try_files替代你之前的if嵌套逻辑,更稳定地将不带index.php的请求转发给PHP处理:
location / { try_files $uri $uri/ /index.php?$args; } # 确保你的PHP处理配置正确(如果已有可忽略,需匹配实际PHP-FPM地址) location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; # 根据你的PHP-FPM端口/地址调整 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
关键注意点
- 确认你的
server块已正确配置网站根目录和默认索引文件:server { listen 80; server_name 你的域名; root /你的网站根目录路径; index index.php index.html; # 必须包含index.php # 上面的重定向和location配置放在此处 } - 修改配置后执行
nginx -s reload重启Nginx生效
内容的提问来源于stack exchange,提问作者Lori
相关产品推荐
相关产品推荐

