laravel 无法加载HTTP错误

scyqe7ek  于 2022-12-14  发布在  其他
关注(0)|答案(1)|浏览(169)

我的客户端有7896页旧网站的旧网站的URL,如:www.domain.com/{url}
现在客户想要建立新的网站,但他需要相同的网址结构作为旧的(www.domain.com/{url}
客户端有大约45k博客文章在不同的类别&这需要从laravel管理面板管理。
如果我需要这样做,比我有45k的网址在根域一样(www.domain.com/{url}),这里的问题来了,有新的发展,在网站也与路线一样
www.domain.com/category/{cat_url})(www.domain.com/tags/{cat_url})(一对四对一)
我在web.php文件中有45k的博客网址
www.domain.com/{url}
问题清单

  • 存储器限制问题
  • 性能缓慢问题(加载页面需要4.5秒,每次请求在路由中加载45k URL)

现在在aws服务器中,我面临着与内存超时相关的问题,因为我在根目录中有大量的URL加载到内存中。
错误消息:

local.ERROR: Out of memory (allocated 38469632) (tried to allocate 3170560 bytes) {"exception":"[object] (Symfony\\Component\\ErrorHandler\\Error\\FatalError(code: 0): Out of memory (allocated 38469632) (tried to allocate 3170560 bytes) at /domain.com/routes/dynamic_blog_routes.php:33026)
[stacktrace]
#0 {main}
"}
  • 我不能改变URL结构作为seo已经很好了

有什么办法可以解决这个问题吗?代替web.php中的45k url,我们可以使用它的一个函数或方法?
请分享您的解决方案或在这方面指导我。
我的web.php文件像.

<?php
Route::get('test-blog', 'Front\BlogController@blog_details');
Route::get('hello-world', 'Front\BlogController@blog_details');
--- 45k routes like this ---
66bbxpm5

66bbxpm51#

@维萨尔胡赛因里
根据你的评论,我已经解决了这个问题。
我的web.php文件

<?php
Route::get('category/{any}', 'Front\BlogController@cat_details');
Route::get('tags/{any}', 'Front\BlogController@tag_details');
Route::get('{any}', 'Front\BlogController@blog_details');
?>

我的BlogController.php文件

class BlogController extends Controller
{
    public function blog_details(Request $request)
    {
      $urlSegment = $request->segment(1);
      if(empty($urlSegment)){
          abort(404);
      }
      $blog = Blog::where("slug", "=", $urlSegment)->first();
      dd($blog);
    }
}

我可以访问我所有的博客路线以及其他网址,这是不是博客的一部分。

相关问题