URL重写通过.htaccess和mod_rewrite将动态URL转为静态形式,如example.com/user/123;需启用mod_rewrite模块,配置AllowOverride All,使用RewriteRule实现规则匹配与内部转发,PHP中仍通过$_GET获取参数,常见应用包括隐藏.php、多参数路由和伪静态首页,提升SEO与用户体验。

URL重写在PHP开发中非常常见,主要用于将动态URL转换为更友好、更利于SEO的静态形式。比如把example.com/user.php?id=123变成example.com/user/123。这主要通过.htaccess文件配合Apache的mod_rewrite模块实现。
开启mod_rewrite模块
URL重写依赖Apache的mod_rewrite模块。确保它已启用:
在Linux系统中,可通过命令a2enmod rewrite启用 在httpd.conf或虚拟主机配置中确认AllowOverride All,允许.htaccess覆盖规则 重启Apache服务使配置生效
.htaccess基础语法与重写规则
在网站根目录创建.htaccess文件,写入以下内容实现基本重写:
RewriteEngine On
RewriteRule ^user/([0-9]+)/?$ user.php?id=$1 [L]
说明:
立即学习“PHP免费学习笔记(深入)”;
RewriteEngine On:开启重写引擎 RewriteRule:定义重写规则 ^user/([0-9]+)/?$:匹配以user/数字结尾的URL,括号捕获数字 user.php?id=$1:内部转发到真实文件,$1代表捕获的ID [L]:表示这是最后一条规则,不再匹配后续规则
处理PHP中的路径与参数获取
重写后,原始脚本仍正常运行。例如user.php中继续用$_GET['id']获取参数:
<?php
if (isset($_GET[‘id’])) {
$userId = intval($_GET[‘id’]);
echo “用户ID: ” . $userId;
}
?>
URL虽变美观,但PHP逻辑无需更改。
常见实用重写示例
以下是一些常用场景的规则:
隐藏.php扩展名:
RewriteRule ^(.+)$ $1.php [L] 多参数路由:
RewriteRule ^post/([0-9]+)/([a-zA-Z0-9_-]+)$ post.php?id=$1&title=$2 [L] 伪静态首页:
RewriteRule ^home$ index.php [L]
基本上就这些。只要Apache支持,.htaccess配置正确,就能实现干净的URL结构,提升用户体验和搜索引擎友好度。注意测试404错误,确保重写目标文件存在。
以上就是PHP代码怎么实现URL重写规则_PHP URL重写与.htaccess配置的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1326100.html
微信扫一扫
支付宝扫一扫