在 Laravel 中实施一长串重定向
Implement a long list of redirections in Laravel
我正在处理这个 Laravel 项目,例如:https://project.com
我有一个 Excel 文档,其中包含 1000 多行我必须添加的重定向,如下所示:
1- https://project.com/content -> https://project.com/new-content
2- https://project.com/news -> https://project.com/weather
3- https://project.com/pages/* -> https://project.com/
... etc
我需要将左侧的每个 link 重定向(重定向 301)到右侧的新 link。所以我想知道我是否需要将所有数据添加到数组中,如 key/value,并为每个条目使用 if
语句循环遍历它。所以每次用户尝试访问 link 时,他都会经历那个循环
这样做正确吗?还是有 better/simple 的方法?
在获取请求时循环遍历 1000 行硬编码数组是一个坏主意,您可以将这些值存储在快速 key/value 存储中,例如 Redis 然后获取给定 URL 作为键并相应地重定向
您可以在 Http\Kernel
中注册的全局路由中间件中应用它
有很多方法可以做到,但从 excel 读取必须是最后一种方法。因为excel有编码,需要时间
从excel读取并放入数据库或Redis(创建一个控制台命令[https://laravel.com/docs/5.8/artisan#registering-commands]一次性完成)。您可以在中间件中使用它来检查 URL 是否有重定向。
如果您希望将其作为文件,请尝试使用基于文本的文件而不是 excel。此外,您可以将配置文件用作数组并将其缓存为 php artisan config:cache
.
不要使用 if-else 语句,在数组或 SQL 查询中使用。
但最好的选择是使用 SQL 查询。
我正在处理这个 Laravel 项目,例如:https://project.com
我有一个 Excel 文档,其中包含 1000 多行我必须添加的重定向,如下所示:
1- https://project.com/content -> https://project.com/new-content
2- https://project.com/news -> https://project.com/weather
3- https://project.com/pages/* -> https://project.com/
... etc
我需要将左侧的每个 link 重定向(重定向 301)到右侧的新 link。所以我想知道我是否需要将所有数据添加到数组中,如 key/value,并为每个条目使用 if
语句循环遍历它。所以每次用户尝试访问 link 时,他都会经历那个循环
这样做正确吗?还是有 better/simple 的方法?
在获取请求时循环遍历 1000 行硬编码数组是一个坏主意,您可以将这些值存储在快速 key/value 存储中,例如 Redis 然后获取给定 URL 作为键并相应地重定向
您可以在 Http\Kernel
有很多方法可以做到,但从 excel 读取必须是最后一种方法。因为excel有编码,需要时间
从excel读取并放入数据库或Redis(创建一个控制台命令[https://laravel.com/docs/5.8/artisan#registering-commands]一次性完成)。您可以在中间件中使用它来检查 URL 是否有重定向。
如果您希望将其作为文件,请尝试使用基于文本的文件而不是 excel。此外,您可以将配置文件用作数组并将其缓存为 php artisan config:cache
.
不要使用 if-else 语句,在数组或 SQL 查询中使用。
但最好的选择是使用 SQL 查询。