ThinkPHP 8 在 Apache 下启用伪静态

ThinkPHP 8 在 Apache 下启用伪静态,需要配置 .htaccess 文件并确保 Apache 支持 URL 重写。以下是详细设置步骤:

1. 启用 Apache 重写模块

首先确保 Apache 的 mod_rewrite 模块已启用。编辑 Apache 配置文件(通常是 /etc/apache2/apache2.conf/etc/httpd/httpd.conf):

复制代码
LoadModule rewrite_module modules/mod_rewrite.so

确保以下行未被注释:(多条)

复制代码
AllowOverride All

2. 创建或修改 .htaccess 文件

在 ThinkPHP 项目的 public 目录 下创建或编辑 .htaccess 文件,添加以下内容:

复制代码
<IfModule mod_rewrite.c>
    Options +FollowSymlinks -Multiviews
    RewriteEngine On
    
    # 禁止访问 .env 文件
    RewriteRule ^\.env$ - [F,L]
    
    # 重写规则
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

3. ThinkPHP 配置支持

确保 config/app.phpurl_route_musturl_rewrite_on 配置正确:

复制代码
// config/app.php
return [
    // ...其他配置
    'url_route_must'   => false,
    'url_rewrite_on'   => true,
    // ...
];

4. 重启 Apache 服务

配置完成后,重启 Apache 服务使设置生效:

复制代码
# Ubuntu/Debian
sudo systemctl restart apache2

# CentOS/RHEL
sudo systemctl restart httpd