You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Livewire3子目录部署下更新请求返回404问题求助

解决Livewire 3子目录部署下POST更新请求404的问题

1. 修正.htaccess规则适配子目录

根据你的子目录位置调整规则:

  • 如果.htaccess放在子目录根目录(如htdocs/lmapnext/.htaccess),使用以下规则:
<IfModule mod_rewrite.c>
    RewriteEngine On

    # 优先转发Livewire更新请求
    RewriteRule ^livewire/(.*)$ server.php?$1 [L]
    # 处理常规Laravel路由
    RewriteRule ^(.*)$ server.php/$1 [L]
</IfModule>
  • 如果.htaccess放在网站根目录(不是子目录),规则要匹配子目录前缀:
<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteRule ^lmapnext/livewire/(.*)$ lmapnext/server.php?$1 [L]
    RewriteRule ^lmapnext/(.*)$ lmapnext/server.php/$1 [L]
</IfModule>

2. 调整Livewire核心配置

打开config/livewire.php,修正以下配置项:

  • asset_url:设置为'/lmapnext/livewire'(无需手动拼接livewire.js,框架会自动处理资源路径)
  • 确认middleware_group配置为'web',保证中间件能正确解析子目录请求

3. 直接注册Livewire路由(替代HandleRequests修改)

在App/Providers/AppServiceProvider.php的boot方法中,手动指定Livewire的更新和脚本路由,避免自动生成路径错误:

use Livewire\Livewire;
use Illuminate\Support\Facades\Route;

public function boot()
{
    // 配置Livewire更新请求路由
    Livewire::setUpdateRoute(function ($handle) {
        return Route::post('/lmapnext/livewire/update', $handle);
    });

    // 配置Livewire脚本资源路由
    Livewire::setScriptRoute(function ($handle) {
        return Route::get('/lmapnext/livewire/livewire.js', $handle);
    });
}

4. 清除缓存并重启服务

执行以下命令彻底清除缓存,确保配置生效:

php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear

之后重启XAMPP的Apache服务,让新的.htaccess规则和配置生效。

5. 验证请求路径正确性

打开浏览器开发者工具(F12),查看Livewire更新请求的URL是否为http://localhost/lmapnext/livewire/update,如果路径不符,重新检查上述配置步骤。

6. 确认Apache重写模块启用

在XAMPP的httpd.conf文件中,确保LoadModule rewrite_module modules/mod_rewrite.so一行未被注释,注释的话去掉前面的#并重启Apache。


内容的提问来源于stack exchange,提问作者TaHa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 03:00:57