رفع مشکل خطای Not Found در لاراول

چنانچه در حال مطالعه این مقاله هستید احتمالا صفحه اصلی یا index.php وبسایت شما (ساخته شده با لاراول)، بدون مشکل باز می شود اما صفحات یا لینک های داخلی با خطای Not Found  مواجه هستند!

علل وقوع مشکل

این پیام معمولا به چند دلیل رخ می دهد، مواردی چون عدم تنظیم کدهای صحیح در فایل .htaccess، وجود Cache نادرست در پروژه شما و یا نقص در تنظیمات Routing پروژه.  در ادامه به ترتیب اولویت به نحوه رفع مشکل می پردازیم. پس در ادامه با ما همراه باشید...

 

راهکارهای رفع مشکل

 

1- وجود نقص در کدهای فایل .htaccess

به مسیر اصلی وبسایت خود جایی که محتویات پوشه Public را در آن قرار داده اید مراجعه کنید. فایل .htaccess را باز کنید و اطمینان حاصل کنید که یکی از نمونه های زیر در آن وجود داشته باشد. شما می توانید هر یک از دسته کدهای زیر را مورد بررسی قرار دهید. هر 3 مورد صحیح هستند و می توانید یکی را انتخاب کنید:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

</IfModule>

یا

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>

RewriteEngine On

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

# Redirect Trailing Slashes If Not A Folder...
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

</IfModule>

یا

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
در اغلب موارد مشکل از محتوای فایل .htaccess است و با اجرای راه حل اول مشکل حل خواهد شد. اما اگر مشکل تداوم داشت راه حل بعدی را تست کنید.

 

2- Cache شدن اطلاعات

به مسیر قرارگیری فایل های اصلی لاراول در home یا public_html مراجعه و مسیر زیر را باز کنید:

/bootstrap/cache

ضمن ایجاد بکاپ از این پوشه، فایل های موجود در cache را حذف کنید. حال می توانید با بررسی وبسایت نتیجه را مشاهده کنید.

 

3- نقص برنامه نویسی در بخش Routing

چنانچه راهکارهای اول و دوم راهگشا نبودند بنابراین تنظیمات Routing پروژه شما با مشکل مواجه است و لازم است با مشاوره یک برنامه نویس اقدام به تصحیح کدهای خود کنید.

  • خطای notfound در لاراول, not found laravel
  • 208 کاربر این را مفید دانستند
آیا این آموزش به شما کمک کرد؟

مقالات مربوطه

رفع مشکل خطای SQLSTATE[HY000] [2002] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

گاهی اوقات در هنگام کار با دیتابیس MySQL قصد دارید تغییری در آن ایجاد کنید اما با خطای زیر مواجه...

رفع خطای 500 در SubDomain یا Addon Domain وبسایت لاراولی

اگر در حین مطالعه این مقاله هستید احتمالا یک وبسایت دارید که با فریم ورک محبوب لاراول نوشته شده...

نحوه جلوگیری از دریافت ایمیل های AutoSSL

پس از افزایش تعداد وبسایت‌هایی که از گواهینامه SSL استفاده می‌کنند به خصوص با پبدایش اس اس ال...

نحوه فعال سازی ثبت خطا (error_log) در لاراول - Whoops looks like something went wrong

گاها پیش می آید که پس از آپلود پروژه لاراول در هاست، وبسایت یا اپلیکیشن شما با خطای زیر مواجه می...

رفع خطای No application encryption key has been specified در لاراول

اکنون که در حال مطالعه این مقاله هستید حتما پروژه لاراولی خود را در هاست آپلود کرده‌اید ولیکن به...