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

Laravel中/wp-blog跳转WordPress子目录404问题求助

解决Laravel中/wp-blog路径跳转WordPress后台404的问题

咱们先拆解下你遇到的问题:你的WordPress部署在Laravel根目录的sricargo-blog子文件夹里,但Laravel的Web入口是public目录,直接通过路由跳转不仅可能路径指向错误,还会因为Laravel的路由拦截机制,导致服务器无法正确识别WordPress的请求,最终出现404。下面给你几个针对性的解决方案:

1. 先修正路由跳转的目标路径

你当前路由里Redirect::to('...')的目标地址需要指向WordPress后台的正确路径。WordPress后台默认地址是/sricargo-blog/wp-admin,先把路由写对:

// routes/web.php
use Illuminate\Support\Facades\Redirect;

Route::get('/wp-blog', function () {
    // 直接跳转到WordPress后台面板
    return Redirect::to('/sricargo-blog/wp-admin');
});

但这一步只是解决了跳转的目标地址问题,核心的404问题还需要调整服务器配置,因为sricargo-blog不在Laravel的public目录下,默认会被Laravel的路由规则拦截。

2. 调整服务器配置(Apache/Nginx)

如果你用Apache

编辑Laravel根目录下的.htaccess文件(没有的话直接创建),添加规则让sricargo-blog目录的请求绕过Laravel,直接访问对应文件夹:

<IfModule mod_rewrite.c>
    # 优先处理sricargo-blog的请求,不经过Laravel
    RewriteRule ^sricargo-blog/(.*)$ sricargo-blog/$1 [L]
    
    # 下面保留Laravel默认的rewrite规则
    RewriteEngine On
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

同时要确保sricargo-blog文件夹有正确的权限,服务器用户(比如www-data)需要有读取和执行权限。

如果你用Nginx

编辑你的Nginx站点配置文件,在location /块之前添加专门处理sricargo-blog的规则:

server {
    # 你的域名、根目录等基础配置...

    # 单独处理WordPress文件夹的请求
    location /sricargo-blog {
        alias /path/to/your/laravel/root/sricargo-blog; # 替换成你的Laravel根目录绝对路径
        index index.php index.html;
        
        # WordPress的URL重写规则
        try_files $uri $uri/ /sricargo-blog/index.php?$args;
        
        # 处理PHP请求
        location ~ \.php$ {
            fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 根据你的PHP版本调整路径
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            include fastcgi_params;
        }
    }

    # Laravel的默认请求处理规则
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # 其他PHP相关配置...
}

修改完成后,记得重启Apache或Nginx服务生效。

3. 更简单的替代方案:把WordPress移到public目录

如果不想折腾服务器配置,可以直接把sricargo-blog文件夹移动到Laravel的public目录下,这样服务器会直接识别到这个文件夹,不需要额外配置规则。

移动后目录结构变为:public/sricargo-blog

然后路由修改为:

Route::get('/wp-blog', function () {
    return Redirect::to('/sricargo-blog/wp-admin');
});

这种方式更省心,适合不想调整服务器规则的场景。

4. 先验证WordPress本身的可访问性

在调整路由和服务器配置之前,先直接访问http://你的域名/sricargo-blog,看看能不能打开WordPress首页。如果直接访问也404,那说明服务器根本没识别到这个文件夹,先解决这个基础问题,再处理跳转逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:12:03