【问题标题】:.htaccess redirects in Laravel and on Forge.htaccess 在 Laravel 和 Forge 中重定向
【发布时间】: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


    【解决方案1】:

    Laravel Forge 使用 nginx.conf 文件(你可以在 forge 中配置)而不是 .htaccess 文件。

    您可以使用 nginx 引用重新创建您的设置:https://nginx.org/en/docs/。您应该查看以下部分:位置和重定向。

    希望这会有所帮助!

    【讨论】:

    • 嘿 Gijs,或多或少...我没有意识到它是 nginx 而不是 apache。说得通。谢谢!
    猜你喜欢
    • 2020-05-15
    • 2013-11-19
    • 2019-12-12
    • 2020-12-03
    • 2017-08-10
    • 2018-05-27
    • 2013-12-30
    • 2015-09-02
    • 2018-05-06
    相关资源
    最近更新 更多