Yii框架部署:开启mod_rewrite美化URL路径【SEO优化】

夏杰大大_5300

夏杰大大_5300

2026-08-08

1000人浏览

原创

必须同时配置web服务器重写模块(如apache启用mod_rewrite并设置allowoverride all)和yii的urlmanager组件(enableprettyurl=true、showscriptname=false及合理rules),缺一不可,否则url美化失效。

yii框架部署:开启mod_rewrite美化url路径【seo优化】

要在Yii框架项目中实现SEO友好的URL路径,必须让访问地址从 http://example.com/index.php?r=site/about 变成 http://example.com/site/about,甚至进一步简化为 http://example.com/about,这需要同时打通Web服务器重写模块与Yii内部路由配置,缺一不可。

确认Apache已启用mod_rewrite模块

打开Apache的主配置文件 httpd.conf(Windows下通常在XAMPP/WAMP安装目录的apache/conf/内),搜索 mod_rewrite.so;确保该行未被注释——即形如 LoadModule rewrite_module modules/mod_rewrite.so 是纯文本,前面没有 #。

这一步不完成,后续所有.htaccess规则都会被直接忽略,浏览器会返回404或原样输出PHP代码。

修改后重启Apache服务,否则改动无效。

设置网站目录允许重写规则

在 httpd.conf 或虚拟主机配置块(<virtualhost></virtualhost>)中,找到对应项目根目录的 <directory></directory> 块,例如:

<directory></directory>

在其内部添加或确认存在这一行:AllowOverride All。

【AllowOverride None会导致.htaccess完全失效,这是本地调试时最常踩的坑】

如果项目放在子目录(如 /myapp/),还要检查 DocumentRoot 和 Directory 路径是否指向真实物理路径,而非URL路径。

在项目根目录放置.htaccess文件

方法一:标准Yii 2官方写法(推荐)

在Web入口目录(即含 index.php 的目录,通常是 web/ 或项目根)新建纯文本文件,命名为 .htaccess(注意开头是点,Windows资源管理器可能默认隐藏扩展名,请用记事本另存为→“所有文件”类型→输入完整文件名)。

写入以下内容:

<ifmodule mod_rewrite.c><br>Options +FollowSymLinks<br>RewriteEngine On<br>RewriteCond %{REQUEST_FILENAME} !-f<br>RewriteCond %{REQUEST_FILENAME} !-d<br>RewriteRule ^(.*)$ index.php?r=$1 [L]<br></ifmodule>

方法二:兼容性更强的写法(适用于部分共享主机)

seo giffy
seo giffy

当用户想要设置、改进或审核分析跟踪与衡量时使用。也适用于用户提及“设置跟踪”、“GA4”、“Google Analyt...”等情况。

下载

将最后一行改为:RewriteRule . index.php,这样不依赖 $1 捕获,避免因正则引擎差异导致路由参数丢失。

保存后确保文件编码为UTF-8无BOM,否则Apache可能报500错误。

配置Yii的urlManager组件

打开 config/web.php(或高级模板下的 frontend/config/main.php),在 'components' => [ ... ] 数组内添加或修改 'urlManager' 配置:

第一步:启用美化并隐藏入口脚本

'urlManager' => [<br>  'enablePrettyUrl' => true,<br>  'showScriptName' => false,<br>  'rules' => [<br>    '<controller:>/<id:>' => '<controller>/view',<br>    '<controller:>/<action:>' => '<controller>/<action>',<br>  ],<br>],</action></controller></action:></controller:></controller></id:></controller:>

第二步:验证 baseUrl 是否正确

如果项目部署在子目录(如 http://localhost/myapp/),必须显式设置 'baseUrl' => '/myapp',否则生成的链接仍带 index.php 或跳转错位。Yii通过 $_SERVER['SCRIPT_NAME'] 推断路径,但子目录下它可能是 /myapp/web/index.php,而默认逻辑只截取到第一个 /。

第三步:清除运行时缓存

删除 runtime/cache/ 和 runtime/compiled/ 下所有文件,否则旧路由配置仍生效。

Nginx环境替代方案(无Apache时)

若使用Nginx(如LNMP、phpStudy Nginx模式),无需.htaccess;直接编辑站点配置文件(如 /usr/local/nginx/conf/vhost/example.com.conf),在 server 块内找到 location / 区域,替换为:

location / {<br>  try_files $uri $uri/ /index.php?$args;<br>}

同时确认 location ~ \.php$ 块中包含:fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;。

修改后执行 nginx -t 测试语法,再 nginx -s reload 生效。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
PHP Yii框架专题
PHP Yii框架专题

本专题专注于PHP主流框架Yii的应用,系统讲解MVC架构、路由机制、数据库操作、表单处理、安全验证与RESTful API 开发等核心内容。通过电商网站、后台管理系统与内容管理平台等实战项目,帮助学员快速掌握Yii框架的开发技巧与实战经验。

2025.09.04

2950

22

seo页面描述
seo页面描述

一个好的SEO页面描述应该包含关键词、简明扼要地概括网页的主题和内容、具有吸引力、与网页内容相符,并且是独特的。它不仅可以帮助搜索引擎了解网页的内容,还可以吸引用户点击进入网页。因此,编写一个优秀的SEO页面描述对于网页的排名和点击率都非常重要。

2023.08.31

4001

5

wordpress seo
wordpress seo

WordPress网站SEO优化方法有:1、选择一个SEO友好的主题,具有清晰的代码结构,快速的加载速度和响应式设计;2、使用SEO插件,优化你的标题标签,元描述,关键字,XML站点地图等;3、优化你的内容,内容是SEO优化的核心;4、优化你的网站速度;5、创建友好的URL;6、使用内部链接;7、优化图像;8、使用社交媒体;9、定期更新你的网站;10、监控和分析你的网站等等。

2023.09.18

5135

6

SEO诊断方法有哪些
SEO诊断方法有哪些

SEO诊断是一个综合性的工作,需要从网站结构、关键词优化、内容质量、外部链接、网站速度、移动友好性等多个方面进行评估和优化。通过进行SEO诊断,可以帮助网站提高在搜索引擎中的排名,从而增加流量和曝光度 。

2023.10.09

6929

7

SEO关键词排名工具有哪些
SEO关键词排名工具有哪些

SEO关键词排名工具有Google关键词规划工具、百度关键词工具、SEMrush、Ahrefs、Moz Keyword Explorer、KWFinder、Ubersuggest、Keyword Surfer、AnswerThePublic和Google Trends。更多关于SEO关键词排名工具的文章,详情请继续阅读该专题下面的文章。php中文网欢迎大家前来学习。

2023.10.30

5375

8

FrankenPHP集成Laravel详细教程
FrankenPHP集成Laravel详细教程

本专题提供FrankenPHP集成Laravel的详细配置指南,全面解析运行原理、开发环境搭建、Caddyfile配置、Octane工作模式、数据库连接、队列任务、定时任务和生产环境优化,解决部署过程中常见的报错与兼容性问题。

2026.10.08

40

20

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

140

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

140

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

100

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程