اضافه کردن www به route ها
یکی از مشکلاتی که گوگل در سئو سایت ها خیلی هم روش تاکید داره مشکل Canonical Links یا خودمونی بگیم ” ایندکس شدن لینک های تکراری در گوگل است” مثلا فرض کنید یک پیج بنام contact درون سایتتون دارید و اون پیج از این طریق larabook.ir/contact قابل دسترس است ، حالا مشکلی که وجود داره اینکه که اگر وب سایت شما با www هم قابل رویت باشه ، از هر صفحه سایتتون دوتا لینک وجود خواهد داشت ، که به یک پیج ختم میشه !
برای مثال هردو صفحه زیر یک محتوا رو نمایش خواهند داد .
http://larabook.ir/contact
http://www.larabook.ir/conact
که این مسئله از نظر گوگل یک مشکل بزرگ محسوب میشه و میتونه روی سئو سایتتون تاثیر منفی بگذاره . خوب چطور میشه این مشکل رو حل کنیم ؟
کسایی که احتمالا با ووردپرس کارکردن میدونن این مشکل رو به راحتی میشه حل کرد خوب منم امروز تصمیم گرفتم برای حل شدن این موضوع یک راه حل منطقی پیدا کنم . مثلا ما میتونیم در Routes.php یک فیلتر تعریف کنیم تا آدرس درخواست هامون رو چک کنهو درصورتی که wwwنداشت ، www رو به ابتدا آدرس URL اضافه کنه و ما درنهایت اون فیلتر را به Route هامون اختصاص بدیم .
برای انجام این کار یک فیلتر ابتدای فایل Routes.php تعریف میکنیم :
1 2 3 4 5 6 7 8 9 |
Route::filter('www', function () { //Add the 'www.' to all requests $request=app('request'); $host=$request->header('host'); if (substr($host, 0, 4) != 'www.') { $request->headers->set('host', 'www.'.$host); return Redirect::to($request->path()); } }); |
سپس فیلتر را به Route هامون به صورت زیر اختصاص میدیم :
1 |
Route::get('/', 'HomeController@index')->before('www'); |
یا میتونیم اون را به گروهی از route ها اختصاص بدیم :
1 2 3 4 5 6 |
Route::group(['before' => 'www'], function () { get('/', 'HomeController@index'); get('/contact', 'HomeController@index'); post('/submission', 'HomeController@index'); // other routes here ... }); |
حالا دیگه تمامی درخواست هاتون همراه با www ارسال میشه . به همین راحتی 🙂
آخرین دیدگاهها