新闻中心

为什么PHP代码中的URL重写不生效_PHP URL重写不生效问题排查与配置教程

2025-10-31
浏览次数:
返回列表
首先检查Apache是否启用mod_rewrite模块,通过命令sudo a2enmod rewrite启用并重启Apache;随后确认虚拟主机配置中AllowOverride设置为All以允许.htaccess覆盖;接着验证项目根目录下.htaccess文件存在且权限为644,并测试重写规则是否生效;若使用Nginx,则需在server块中直接配置rewrite规则,运行sudo nginx -t测试配置后重启服务;最后检查PHP运行模式,确保PHP-FPM环境下PATH_INFO变量被正确传递,保障框架对重写路径的解析。

为什么php代码中的url重写不生效_php url重写不生效问题排查与配置教程

如果您在开发PHP应用时配置了URL重写规则,但发现页面仍按原始路径访问,则可能是由于服务器未正确解析重写规则。以下是排查与配置的详细步骤:

本文运行环境:Dell XPS 13,Ubuntu 22.04

一、检查Apache是否启用mod_rewrite模块

URL重写功能依赖于Apache的mod_rewrite模块,若该模块未启用,所有重写规则将无效。

1、打开终端,执行命令 sudo a2enmod rewrite 启用模块。

2、重启Apache服务以应用更改:sudo systemctl restart apache2

3、确认模块已加载,可运行 apache2ctl -M | grep rewrite 查看输出中是否包含rewrite_module。

二、配置虚拟主机允许Override

即使启用了mod_rewrite,如果虚拟主机配置中未允许.htaccess覆盖,默认的重写规则也不会生效。

1、编辑站点对应的虚拟主机配置文件,通常位于 /etc/apache2/sites-*ailable/000-default.conf 或自定义配置文件。

2、在对应目录节点(如 html">)内添加如下内容:

    AllowOverride All

    Require all granted

3、保存后再次重启Apache服务确保配置载入。

Musho Musho

AI网页设计Figma插件

Musho 76 查看详情 Musho

三、验证.htaccess文件是否被正确读取

.htaccess文件是存放URL重写规则的关键文件,必须确保其存在且语法正确。

1、检查项目根目录下是否存在名为 .htaccess 的文件。

2、确认文件权限设置为644,可通过命令 chmod 644 .htaccess 修改。

3、在文件中添加一条测试规则,例如:
    RewriteEngine On
    RewriteRule ^test$ index.php [L]
然后访问 /test 路径,观察是否跳转到index.php。

四、使用Nginx时配置重写规则

Nginx不支持.htaccess文件,所有重写规则需直接写入服务器配置中。

1、打开Nginx站点配置文件,一般位于 /etc/nginx/sites-*ailable/default

2、在server块中添加rewrite指令,例如:

    location / {
        if (!-e $request_filename) {
            rewrite ^/(.*)$ /index.php?$1 last;
        }
    }

3、测试配置有效性:sudo nginx -t,无误后重启Nginx服务。

五、检查PHP运行模式与URL处理方式

某些PHP部署方式(如FastCGI)可能影响PATH_INFO的获取,导致框架无法解析重写后的路径。

1、创建一个phpinfo.php文件并访问,查看“Server API”项确认PHP运行模式。

2、若使用PHP-FPM,需确保Nginx或Apache正确传递PATH_INFO变量。

3、对于Nginx,在location块中应使用 $fastcgi_path_info 并设置fastcgi_param SCRIPT_FILENAME正确指向脚本文件。

以上就是为什么PHP代码中的URL重写不生效_PHP URL重写不生效问题排查与配置教程的详细内容,更多请关注php中文网其它相关文章!


# 设置为  # 贵州品质网站建设公司  # 网站推广都咨a金脉科技  # 租网站建设工程  # 天津网站营销推广设计  # 康平推广网站建设价位  # 哈尔滨大型网站优化  # 灌南seo网络优化收费标准  # 北碚区云网站推广  # 镇江市全域营销推广  # 文水网站推广哪家好  # 相关文章  # 运行环境  # 加密工具  # 文件管理  # php代码使用  # 虚拟主机  # 验证码  # 重启  # 重写  # 为什么  # 配置文件  # ai  # ubuntu  # access  # nginx  # apache  # html  # php 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: ACG动漫视频网入口 ACG动漫*免费正版观看地址  J*aScript中在Map循环中检测并处理空数组元素  圆通快递查询实时追踪 圆通物流包裹状态快速查看  支付宝解绑银行卡步骤_支付宝如何解除绑定银行卡  c++ 命名空间怎么用 c++ namespace使用指南  Go语言中的*string:深入理解字符串指针  在Socket.IO连接中实现Access Token自动更新与动态重连  MAC怎么安装Homebrew包管理器_MAC为开发者和高级用户安装命令行工具  AO3官方镜像站点汇总 AO3同人作品网页版直达链接  PDF文件体积过大处理_PDF压缩技巧详解  mcjs网页版在线存档 mcjs云存档登录入口  响应式CSS Grid布局:优化网格项在小屏幕下的堆叠与宽度适配  QQ邮箱官方登录入口_QQ邮箱网页版快捷使用平台  12306几点到几点不能订票? | 官方最新系统维护时间全解析  Golang如何通过reflect获取匿名字段方法_Golang reflect匿名字段方法访问技巧  C++如何实现一个装饰器模式_C++设计模式之动态地给对象添加额外职责  excel如何生成目录 excel一键生成工作表目录超链接  mysql密码锁定怎么解锁_mysql密码锁定解锁后修改密码步骤  小红书怎么解除第三方平台绑定_小红书多平台登录解绑方法介绍  J*aScript中正确使用querySelectorAll与复杂CSS选择器  使用CSS更改登录屏幕输入框中PNG图标颜色的策略与局限性  解决Rails应用中内容错位与Turbo警告:meta标签误用导致富文本渲染异常  如何使用spryker/configurable-bundles-products-resource-relationship模块解决复杂产品捆绑关系难题  漫蛙2漫画入口 漫蛙正版网页漫画直达网址  厨房不锈钢水槽发黑生锈怎么处理_水槽用可乐+锡纸2分钟抛亮如新  jQuery Mask 插件中实现电话号码固定前导零的教程  J*a里如何实现线程安全的懒加载单例_懒加载单例实现方法解析  sublime如何处理大型CSV文件的列对齐_sublime高级表格编辑插件指南  如何在低配置电脑上搭建轻量级J*a环境_占用更小的环境选择技巧  Descript怎样用AI剪辑自动去噪_Descript用AI剪辑自动去噪【自动降噪】  J*aScript动态修改指定div内所有a标签样式指南  C++如何生成随机数_C++ random库使用方法与范围设置  Yandex浏览器官方网页版入口 Yandex浏览器最新版官网  Sublime Text怎么显示空格和制表符_Sublime显示不可见字符设置  解决移动端滚动问题的overflow属性应用指南  在J*a中如何开发在线活动报名与管理系统_活动报名管理项目实战解析  腾讯视频怎么举报不良内容_腾讯视频内容举报流程与违规信息处理方法  处理嵌套交互式控件:前端可访问性指南  支付宝如何管理隐私设置_支付宝隐私保护的配置技巧  CSS条件样式无法按设备触发怎么排查_media条件语句正确设置解决触发问题  WordPress插件开发:正确注册卸载钩子与避免常见陷阱  J*aScript对象创建方式_J*aScript设计模式应用  win11怎么查看应用耗电情况 Win11电池设置查看应用能耗排行榜【优化】  yandex入口引擎手机版 yandex安卓版下载入口  苹果手机如何防止被恶意App追踪  Golang如何使用new_Go new分配内存机制讲解  J*a编写用户注册与登录功能_掌握字符串与验证逻辑  R星幕后开发视频泄露 包含《GTA6》等多款大作  4399免费游戏网址入口 4399小游戏免费入口点开即玩  拷贝漫画电脑版官网入口 拷贝漫画(PC版)在线直达 

搜索