راکت
حل شده

ریدایرکت کلی در لاراول

2 پاسخ

سلام دوستان چطور میتونم ریدایرکتی که مثلا در افزونه یواست وردپرس هست رو در لاراول پیاده کنم؟
در واقع میخوام روت قدیم و روت جدید رو از کاربر بگیرم و ذخیره کنم و این روت قبلی رو ریدایرکت 301 بدم

ثبت پرسش جدید

پاسخ‌ها

2
محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

بهترین پاسخ

روش های مختلفی میشه پیاده سازیش کرد. پیشنهادم بنده اینه که:

اول یک جدول داشته باشید که اطلاعات url قدیمی و url که بایدبهش ریدایرکت بشه رو همراه با سایر اطلاعات مثلا وضعیت فعال بودنش یا نوع ریدایرکت ‌۳۰۱ باشه یا ۳۰۲ و ... ذخیره کنید.

بعد یک Middleware ایجاد کنید و همه درخواست ها رو از این middleware عبور بدید و چک کنید که آیا مسیر درخواستی در لیست url هایی که باید ریدایرکت بشن هست یا نه. اگر بود، در همون فایل middleware با استفاده از دستورات لاارول می‌تونید به راحتی این کار رو انجام بدید:

public function handle($request, Closure $next)    {
        if (آدرس در لیست ریدایرکت ها بود) {
            return redirect($new_url, 301);
        }
        return $next($request);
    }

برای بهبود عملکرد و بالابردن performance هم پیشنهاد میشه حتما این اطلاعات رو Cache کنید تا به ازای هر درخواست یک کوئری جداگانه به دیتابیس برای گرفتن لیست URL های ریدایرکتی نداشته باشید.

Morteza Khodarahmi
Morteza Khodarahmi
@mrkhodarahmii

تخصص: Backend Developer

درود
برای ریدایرکت کردن به یه آدرس جدید میتونی داخل فایل .htaccess این کارو انجام بدی.

RewriteEngine on 
RewriteRule ^(.*)$ http://www.newdomain.com/ [R=301,L]

این لینک هم مفیده
https://rokaweb.ir/seo-laravel-htacess/

شاید پاسخ شما همین‌جا باشد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام