Yii框架怎么配置URL重写_Yii框架美化链接服务器设置【操作】

秋明酱_9901

秋明酱_9901

2026-04-17

679人浏览

原创

yii url重写需框架层(urlmanager配置)与web服务器层(apache/nginx规则)协同生效;仅配其一必致404或index.php残留。

yii框架怎么配置url重写_yii框架美化链接服务器设置【操作】

URL重写在 Yii 中必须分两步走:框架层配置 urlManager + Web 服务器层启用重写规则。只配一边,404 或 index.php 强制出现是必然结果。

怎么配 urlManager 才生效

关键不是开开关,而是确保 enablePrettyUrl 启用、showScriptName 关闭、rules 写对格式 —— 尤其注意大小写和斜杠位置。

  • urlManager 必须定义在 config/web.php 的 components 数组里,不能放在 params 或顶层
  • enablePrettyUrl 设为 true,但若服务器不支持重写,它会自动退化回 index.php 模式,不报错也不提示
  • showScriptName 必须为 false,否则即使规则匹配,生成的 URL 仍带 index.php
  • 单条规则推荐用键值对写法:'vmmembers/<name>' => 'window/view'</name>,比嵌套数组更不易漏字段
  • 正则捕获需显式声明,比如 <name:></name:>,不能只写 <name></name>,否则匹配任意字符(包括斜杠),导致路由冲突

Apache 下 .htaccess 常见失效原因

Yii 自带的 .htaccess 文件只在 web/ 目录下起作用,且依赖 mod_rewrite 开启和 AllowOverride All 配置。

Yii Framework 2.0.51
Yii Framework 2.0.51

Yii Framework 2.0.51 官方 Basic 应用模板,适合旧项目兼容、升级验证和开发测试。

下载
  • 确认 Apache 已加载 rewrite_module:运行 a2enmod rewrite 并重启服务
  • .htaccess 必须放在与 index.php 同级的 web/ 目录内,不是项目根目录
  • 虚拟主机配置中必须允许覆盖:AllowOverride All 要出现在对应 <directory></directory> 块里,仅靠 .htaccess 文件存在没用
  • 如果用 XAMPP/MAMP,检查控制面板里是否勾选了 “Enable Apache mod_rewrite”
  • 规则末尾别加多余空格或 BOM 字符,会导致 Internal Server Error

Nginx 下必须手动补全重写逻辑

Nginx 不读 .htaccess,所有重写必须硬编码进 server 配置块,且 try_files 顺序错了就直接 404。

  • 入口路径必须指向 web/ 目录:root /var/www/myapp/web;,不是项目根目录
  • location / 块里必须用 try_files $uri $uri/ /index.php?$args;,漏掉 $args 会导致 GET 参数丢失
  • PHP 处理块要明确指定 SCRIPT_FILENAME:fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;,错写成 $request_filename 会找不到脚本
  • 不要把 location ~ \.php$ 块写在 location / 外面,Nginx 不会继承内部变量

调试时先验证哪一层坏了

遇到重写失败,按顺序排除,避免反复改配置却卡在错误环节。

  • 访问 https://yoursite.com/index.php/site/about 能打开?→ 框架本身正常;打不开 → 先查 PHP 环境、vendor 是否完整、runtime 是否可写
  • 访问 https://yoursite.com/site/about 返回 404,但 https://yoursite.com/index.php/site/about 可用 → Web 服务器层未生效
  • 访问 /site/about 跳转到 /index.php/site/about → showScriptName 没关,或 urlManager 配置未加载(常见于高级模板中 frontend/config/main-local.php 覆盖了主配置)
  • 规则写了 'post/<id:>' => 'post/view'</id:>,但访问 /post/abc 却进了 post/view → 正则太宽泛,\d+ 应该写成 [0-9]+ 并加锚点,或换用更严格的模式如 <id:></id:>

最易被忽略的是:本地开发用 Apache + .htaccess,上线换 Nginx 后忘了重写配置迁移,或者 Docker 容器里没装 mod_rewrite 也没配 try_files —— 这类问题不会报错,只会静默降级。

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

900

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2772

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

936

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

829

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

414

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2516

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4652

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

747

5

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Yii2.0框架开发实战视频教程
Yii2.0框架开发实战视频教程

共22课时 | 9.3万人学习

Yii Framework 2.0 API 官方文档
Yii Framework 2.0 API 官方文档

共0课时 | 0人学习