新闻中心
为什么PHP代码中的URL重写不生效_PHP URL重写不生效问题排查与配置教程
首先检查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重写规则,但发现页面仍按原始路径访问,则可能是由于服务器未正确解析重写规则。以下是排查与配置的详细步骤:
本文运行环境: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、在对应目录节点(如
AllowOverride All
Require all granted
3、保存后再次重启Apache服务确保配置载入。
Musho
AI网页设计Figma插件
76
查看详情
三、验证.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版)在线直达


2025-10-31
浏览次数:次
返回列表