【发布时间】:2019-02-01 01:21:48
【问题描述】:
当将旧项目迁移到基于 Laravel 的新项目时,我们需要将(301 Header)旧路由重定向到新路由,例如
/index.php?page=shop ==> /shop
/index.php?category=abc&product_id=123 ==> /abc/item-123
为此,我们准备了一个合适的 .htaccess 文件,它可以完美地在旧项目上运行。但是,当我们部署新项目并更改域 DNS 时,htaccess 也需要在新文件夹中。
在 Laravel 中,我们确实有 /public/.htaccess,但是,添加我们的 .htaccess 片段不能与 Laravel Forge 一起使用。这是一个简单的 .htaccess 文件,如下所示:
<IfModule mod_rewrite.c>
# Enable Rewrite Engine
RewriteEngine On
RewriteBase /
# index.php?page=user&sub_page=settings
RewriteCond %{QUERY_STRING} ^page=user&sub_page=settings$
RewriteRule ^index\.php$ /users/notifications/permissions/edit [R=301,NC,L,QSD]
(... and so on)
</IfModule>
所以现在我们想知道:我们如何让它工作,它将旧路由转发到基于 Laravel 的同一项目中的新路由?
【问题讨论】:
标签: laravel apache .htaccess mod-rewrite laravel-forge