【问题标题】:Route::get with parameters and redirectRoute::get 带参数和重定向
【发布时间】:2018-09-26 15:05:47
【问题描述】:

客户要求我将旧网址重定向到新网址。只是,它给我的 URL 包含一个参数,并且不可能用它进行 .htaccess 重定向。我测试过,但没有成功。

我想使用 Laravel 路由系统进行重定向。

我试过这个:

Route::get('places.php?p=1740', function () {
   return redirect('new/url');
});

但我也有同样的问题。我有一个页面不存在的 404 错误。我试过不带参数,它可以工作。

我也试过这个:

Route::get('places.php/{p}', function ($p = '1740') {
    return redirect('new/url');
});

但它也不起作用。

我只需要一个解决方案,可以将带有参数的网址重定向到新网址。

谢谢!

【问题讨论】:

  • 如果您的网络服务器设置正确,您的路由中就不需要.phpRoute::get("/places/{p}", ...) 应该没问题。导航到 http://your-app/places/1740 应该会将您重定向到 http://your-app/new/url

标签: php laravel


【解决方案1】:

在 laravel 路由系统中你不需要指定.php 扩展名,使用如下:

Route::get('places/{p}', function ($p = '1740') {
    return redirect('new/url');
});

【讨论】:

    【解决方案2】:

    如果我理解正确的话,你有一个旧的 url 来自不是在 Laravel 中构建的网站版本,这个 url 可能被搜索引擎索引,并且用户在访问这个 url 时遇到了 404。您的目标是设置从 https://example.com/places.php?p=1740https://example.com/new/url 的 301 重定向。

    如果是这种情况,您应该可以通过将此行添加到 /public/.htaccess 来实现:

    Redirect 301 /places.php?p=1740 /new/url
    

    或者你可以通过路由文件来做到这一点:

    Route::redirect('/places.php?p=1740', '/new/url', 301);
    

    【讨论】:

    • 对不起,它不起作用。正因为有? URL 中的 P = 1740。这是我测试的第一件事。
    猜你喜欢
    • 2016-10-09
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 2018-02-01
    • 2016-03-18
    • 1970-01-01
    • 2021-12-28
    相关资源
    最近更新 更多