PHP网站SEO优化中URL重写需先启用mod_rewrite模块并设置AllowOverride All,再通过.htaccess中RewriteEngine On、RewriteCond排除真实文件目录、RewriteRule将请求统一交由index.php处理,PHP中解析$_GET['url']实现路由分发,并配合301跳转、canonical标签等细节提升搜索表现。

PHP网站做SEO优化,URL重写是关键一环。它不是单纯“美化链接”,而是把动态参数(如 index.php?cat=blog&id=42)映射成语义清晰、层级合理的路径(如 /blog/42),让搜索引擎更容易理解内容结构,也方便用户识别和分享。
确保服务器支持 mod_rewrite
这是所有重写的前提。Apache 默认可能未启用该模块,需确认两点:
- 运行
a2enmod rewrite(Linux Debian/Ubuntu)或检查httpd.conf中LoadModule rewrite_module是否已取消注释 - 虚拟主机或目录配置中设置
AllowOverride All,否则 .htaccess 文件会被忽略
配置 .htaccess 实现基础重写
在网站根目录新建或编辑 .htaccess,写入标准规则:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
这段规则的意思是:只要请求的不是真实存在的文件或目录,就统一交给 index.php 处理,并把原始路径作为 url 参数传入。例如访问 /product/105,PHP 中可通过 $_GET['url'] 获取到 product/105。
立即学习“PHP免费学习笔记(深入)”;
在 PHP 中解析路径并路由分发
单一入口文件(如 index.php)需根据传入路径加载对应逻辑:
- 用
explode('/', trim($_GET['url'], '/'))拆分路径段,例如['product', '105'] - 判断首段为模块名(
product),次段为ID(105),再调用对应控制器或模板 - 对不存在的路径返回 404 状态码,避免生成空页影响 SEO
兼顾 SEO 细节的实用技巧
光能访问还不够,要真正提升搜索表现:
- 所有内部链接使用重写后的 URL(如
/about),不要混用index.php?page=about - 为旧动态 URL 设置 301 跳转,把权重平滑转移给新地址
- 在
<head>中为规范 URL 添加<link rel="canonical" href="https://example.com/blog/2024"> - 避免大小写混用,可在 .htaccess 中加规则强制小写,或 PHP 中统一 strtolower 处理



















