2017-06-05 9 views
0

私はlaravelのウェブサイトを書き直していますが、SEOのためには、301のリダイレクトを行うルートをいくつか作成する必要があります。
旧リンク:www.website.com/category.php?category={id}
Laravel 5.4 + PHP例えば7.0page.phpの使い方は?id = {id} route on laravel

を使用して

:訪問者は、古いスタイルのウェブサイトのリンクにアクセスしてもらいます は次の宛先にリダイレクトされます:
新しいリンク:www.website.com/category/{category-name}

しかし、私はlaravel上でこのようなルートを作成するとき、それは動作しません:「?」

Route::get('/category.php?category={id}', function ($id) { 
// Old route style, search new route and do the redirect. 
}); 

私が削除した場合それはちょっとうまくいくが、それは私の古いリンクをターゲットにしないだろう。 URLに

これはlaravelでサポートされていますか?
そうでない場合は、これを達成するにはどうすればよいでしょうか?

答えて

2

このようなルートを作成し、カテゴリIDを渡します。例えば、私は10

<a href="www.website.com/category.php?category=10">button</a> 

と、要求オブジェクトからIDを取ることをとっています。

Route::get('/category.php', function (\Illuminate\Http\Request $request) { 
    $id = $request->category; 
    // Old route style, search new route and do the redirect. 
}); 
+0

これは正しいです。 – devk

+0

ありがとう!完璧に働いた! – lcsdms

0

この場合、Htaccessはあなたの友人です。

RewriteEngine on 
RewriteBase/
RewriteRule ^category.php?category=(.*) http://www.website.com/category/$1 [R=301,L] 
+0

ヒント@reinierkorsさん、ありがとうございますが、私は親しみやすいURLを使用して、URLのID名からカテゴリ名にリダイレクトする必要があります! – lcsdms

0

コントローラとは何ですか。あなたのコントローラは何ですか。 コントローラのリソースを入手できます これらのルートはすべてあなたのルートに追加されます:痛みのないリスト。

Route:: resource ('category', 'controller');