Php Wordpress&;拉韦尔恩金克斯酒店

Php Wordpress&;拉韦尔恩金克斯酒店,php,wordpress,laravel,nginx,laravel-5,Php,Wordpress,Laravel,Nginx,Laravel 5,我有一个运行基于WP的博客。目前,我正在用Laravel开发一个新的web应用程序,它应该运行在同一个(子)域上。新的web应用程序应该是网站的新起始页/主页/文档根www.xyz.xyz/,但我不想改变当前的WP URL结构-我不想在子目录中运行WP-因此,WP的一切都应该保持原样,除了起始页应该由laravel而不是wordpress提供之外,它的现有URL也应该由laravel提供 当然,wordpress帖子和laravel网页可能会使用同一个slug,尽管它不应该使用,在这种情况下,l

我有一个运行基于WP的博客。目前,我正在用Laravel开发一个新的web应用程序,它应该运行在同一个(子)域上。新的web应用程序应该是网站的新起始页/主页/文档根www.xyz.xyz/,但我不想改变当前的WP URL结构-我不想在子目录中运行WP-因此,WP的一切都应该保持原样,除了起始页应该由laravel而不是wordpress提供之外,它的现有URL也应该由laravel提供

当然,wordpress帖子和laravel网页可能会使用同一个slug,尽管它不应该使用,在这种情况下,laravel页面应该被服务

我使用nginx作为web服务器。以前有人做过这样的事吗?它可以在nginx级别上完成吗?有人对如何解决这个问题有什么建议吗

如果Laravel可以为我将在异常处理程序中完成的页面提供服务,如果WP也没有页面提供服务,那么它将负责显示404卷曲WP博客的工作,只要它们不在同一子域/Web服务器上运行

主要问题是,需要如何配置index.php和nginx,以便在同一(子)域上和在同一目录中运行Laravel&WP两者

/** *将异常呈现到HTTP响应中。 * *@param\light\Http\Request$Request *@param\Exception$Exception *@return\light\Http\Response */ 公共函数呈现($request,Exception$Exception) {


谢谢。

我不确定是否有脚本可以在返回页面之前检查查询结果。因此,我可以考虑两种选择

  • 如果您知道wordpress的slug的根,您可以使用
    web.config
    将每个slug的所有流量(即
    sub.example.com/category
    )定向到wordpress,并将其他“文件夹”的流量定向到Laravel
  • 如果您不知道slug的根目录,或者想要混合使用slug,则需要创建一个新的index.php文件,该文件处理对wordpress或Laravel的调用。该文件需要首先连接到Laravel,并使用路由器来确定页面是否存在。如果存在,则将请求完全发送给Laravel,如果不存在,则将请求发送给word记者
  • 有关方法2的帮助,请参阅


    您需要将Laravel的
    public/index.php
    与相应的wordpress文件合并。使用
    web.config
    和目录切换,您应该能够在完全不同的目录中进行这两次安装。然后您可以在默认情况下将所有内容发送到Laravel,并编辑
    public/index.php
    ,以发送以下请求:不存在于wordpress引擎中。

    谢谢你的回答,我编辑了我的初始帖子,404识别已经完成,有点类似于你的第二种方法,但在错误处理程序中。你有任何这样的index.php+nginx配置的示例吗?谢谢。我没有示例,但我认为你应该能够使用e wordpress index.php文件,只需导入它的内容而不是curl请求,因为所有文件都在Web服务器上。由于curl更简单,您可以让WP实际运行在不同的子域上,只需使用curl就可以让外界觉得它在这个域上。
        if ($this->isHttpException($exception)) {
    
            $statusCode = $exception->getStatusCode();
    
            switch ($statusCode) {
                case '404':
    
    
                    if(Cache::store('file')->has('magazin-startpage')) {
                        echo Cache::store('file')->get('magazin-startpage');
                        return;
                    }
    
                    $queryParameter = str_replace($request->url(), "",
                        $request->fullUrl());
                    $path = $request->getPathInfo();
    
                    $ch = curl_init();
                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                    curl_setopt ($ch, CURLOPT_PORT , 443);
                    curl_setopt($ch, CURLOPT_URL,"https://www.blog.xyz"
                        .$path.$queryParameter);
                    curl_setopt($ch, CURLOPT_POST, 1);
                    $blog = curl_exec ($ch);
                    curl_close ($ch);
                    Cache::store('file')->put('www.blog.xyz', $blog, 60);
                    echo $blog;
    
                    return;
    
                break;
            }
        }
    
        return parent::render($request, $exception);
    }