当前位置:

首页 > 编程开发 > Linux服务器ThinkPHP伪静态.htaccess文件创建教程【教程】

Linux服务器ThinkPHP伪静态.htaccess文件创建教程【教程】

ThinkPHP伪静态生效需三条件:Apache启用mod_rewrite且AllowOverrideAll;.htaccess放public目录,权限644内容标准;框架路由开启。缺一导致404,常见/article/1返回404或路由未找到,需依次排查。

本文目录

    你可能已经配好了 .htaccess,也开了 Apache 的 rewrite 模块,结果访问 /article/1 依然 404——这种情况,我见过不少新手卡住。其实伪静态在 ThinkPHP 里并不是框架自己生成静态页面,而是靠服务器把请求重写到 index.php,再由框架解析路由。能不能生效,关键看三件事:Apache 的 mod_rewrite 是否启用、.htaccess 文件是否放对位置且权限正确、ThinkPHP 路由是否已开启。缺一不可。

    Linux服务器ThinkPHP伪静态.htaccess文件创建教程【教程】

    Apache 必须启用 mod_rewrite 并允许 .htaccess 覆盖

    很多新手卡在这一步,以为写了 .htaccess 就能用,结果 404 或直接显示目录列表。

    • Linux 下执行 sudo a2enmod rewrite 启用模块,然后 sudo systemctl restart apache2
    • 检查虚拟主机配置(如 /etc/apache2/sites-enabled/000-default.conf),确保对应目录段包含:
      AllowOverride All(不能是 None 或 FileInfo 不全)
    • 如果项目部署在子目录(比如 /var/www/html/myapp),还要确认该目录的 AllowOverride 已放开

    .htaccess 文件必须放在 public 目录且命名/权限正确

    ThinkPHP 5.1+ 默认入口在 public/ 目录,.htaccess 必须放在这里,不是根目录也不是 application/。

    • 文件名是 .htaccess(开头带点,Linux 下是隐藏文件;Windows 记事本另存为时要加英文引号:".htaccess")
    • 确保文件可被 Apache 读取:chmod 644 public/.htaccess,不能是 777 或 600
    • 内容用标准规则,不要加多余空行或 BOM 头:
      RewriteEngine On
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
    • 若部署在子路径(如 https://example.com/shop/),必须加 RewriteBase /shop/(注意末尾斜杠)

    ThinkPHP 路由开关和 URL 模式要匹配

    即使服务器重写成功,框架不解析路由,URL 还是会 404。TP6 和 TP5.1+ 默认关闭路由,必须手动开。

    • TP6:检查 config/route.php 中 'with_route' => true,或确认 route/ 目录下有定义规则
    • TP5.1:确认 config/app.php 中 'url_route_on' => true 已开启
    • URL_MODEL 在 TP5 已废弃,TP6 完全移除,别在配置里写这个
    • 测试时用 php think route:list 看当前注册的路由是否包含你期望的路径

    常见错误现象和快速验证点

    遇到伪静态不生效,按顺序排查比重写配置更有效。

    • 访问 https://yourdomain.com/index.php/article/1 能打开,但 /article/1 404 → 说明服务器重写没起作用
    • 访问 /article/1 返回 “No input file specified” 或空白 → PHP FastCGI 配置问题,不是伪静态问题
    • 访问 /article/1 显示 “The requested URL was not found on this server” → Apache 没加载 .htaccess,查 AllowOverride
    • 访问 /article/1 显示 ThinkPHP 路由异常(如 “Route Not Found”)→ 框架路由未开启或没配规则
    • 用 curl -I https://yourdomain.com/.htaccess 返回 200 → 说明该文件能被直接下载,存在严重安全隐患,立刻设为 deny from all 或移出 Web 可访问路径

    最易被忽略的是 AllowOverride All 这个配置项——它不在 .htaccess 里,而在 Apache 主配置中,且修改后必须重启服务。很多人反复改 .htaccess 却忘了这一步。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 access
    相关文章 更多
    access怎样设置字段大小
    access怎样设置字段大小

    使用Access数据库时,字段大小看着是个不起眼的设置,但要是没弄好,轻则浪费存储空间,重则丢了数据你还不知道咋回事。今天咱们就来把这个事儿彻底捋一捋。 确定字段类型 动手之前先得明确一件事:字段里装的是什么数据?这是所有设置的基础。Access提供了文本、数字、日期/时间等多种类型,不同类型对“大

    pubmed官方网站登录页
    pubmed官方网站登录页

    PubMed医学论文检索官网登录入口详解 PubMed医学论文检索官网登录页是https://pubmed.ncbi.nlm.nih.gov/,该平台提供免费的生物医学文献检索服务,支持关键词、作者、期刊名等多种检索方式,并具备高级搜索和结果筛选功能,资源覆盖全球70多个国家近4000种期刊,包含M

    如何用access建立删除查询
    如何用access建立删除查询

    删除查询是Access中高效的数据清理工具,需谨慎使用。操作时需进入查询设计视图,添加目标表并设置删除条件,如日期范围。运行前系统会提示待删记录数,务必核对。执行后应检查结果,操作前重要数据需备份。

    如何在access中调整数据表列宽
    如何在access中调整数据表列宽

    处理Access数据库时,调整数据表的列宽几乎是每个用户都会遇到的操作。合适的列宽能让数据布局一目了然,无论是核对信息还是批量编辑,都能事半功倍。今天,我们就来聊聊几种调整列宽的实用技巧,帮你把数据表打理得井井有条。 手动拖动调整 最直观的方法莫过于手动拖拽。在数据表视图中,把鼠标移到列标题的右侧边

    ThinkPHP伪静态怎么配Apache_ThinkPHP多语言.htaccess设置技巧【汇总】
    ThinkPHP伪静态怎么配Apache_ThinkPHP多语言.htaccess设置技巧【汇总】

    ThinkPHP在Apache下配置伪静态必须启用mod_rewrite模块,并将AllowOverride设为All,.htaccess规则应放在public目录。在多语言场景下应该避免硬编码语言前缀,由框架自动解析路径。常见错误主要有模块未启用、AllowOverride为None,需检查Apache的配置并重启服务,以支持URL重写。

    ThinkPHPApache配置_.htaccess文件设置与重写【操作】
    ThinkPHPApache配置_.htaccess文件设置与重写【操作】

    ThinkPHP 在 Apache 环境下部署,.htaccess 文件几乎是必不可少的一环。核心原因很简单:不配好它,你的所有 URL 里都会带着碍眼的 index.php,而且框架的路由系统也基本等于没工作。 一句话总结:ThinkPHP 在 Apache 下必须用 .htaccess 实现 U

    如何用access创建窗体
    如何用access创建窗体

    在Access数据库里,窗体是个好东西。它就像一个为你数据量身定制的操作界面,无论是查看记录、录入新信息还是修改现有数据,都比直接面对原始表格要直观、方便得多。今天,我们就来一步步拆解,如何从零开始创建一个属于你自己的窗体。 打开窗体设计视图 万事开头难?其实不然。首先,确保你已经打开了目标数据库。

    如何在access报表中添加控件
    如何在access报表中添加控件

    在Access报表设计里,控件算是最常用的工具之一,用得好能让报表内容丰富不少,功能也更贴合实际场景。下面咱们就挨个看看,各种控件怎么加到报表里,以及有什么需要注意的地方。 先说文本框控件。它主要用于显示字段值、计算结果这类信息。操作很简单:在报表的设计视图里,找到“设计”选项卡,点击“控件”组里的

    access如何删除特定数据
    access如何删除特定数据

    在数据库的日常维护中,删除特定数据是一项基础但至关重要的操作。方法得当,不仅能精准清理冗余信息,还能有效避免误删风险,让数据管理事半功倍。今天,我们就来系统梳理一下在Access中执行这一任务的核心路径。 access怎么删除特定数据 一切操作开始前,有个好习惯务必养成:先找到并打开目标数据库,然后

    access键值冲突如何解决
    access键值冲突如何解决

    在access数据库里,键值冲突是个挺常见的麻烦事儿。出现冲突别着急,咱们一步步分析解决就行。 先搞清楚原因——说白了,就是数据库里设置了唯一键约束,比如某个字段是主键,要求值必须唯一。这时候如果新插入或更新的数据“撞车”了,系统就会报错。举个例子:一个表的“用户ID”字段设成了主键,你偏要再塞一条

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。