مرکز آموزش

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

  • خطای notfound در لاراول, not found laravel
  • 208

چنانچه در حال مطالعه این مقاله هستید احتمالا صفحه اصلی یا 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 پروژه شما با مشکل مواجه است و لازم است با مشاوره یک برنامه نویس اقدام به تصحیح کدهای خود کنید.

تمامی حقوق مادی و معنوی این مطلب متعلق به HiSupport است.
کپی برداری از مطالب تنها با ذکر منبع و لینک به وبسایت HiSupport بلامانع است.


آیا این آموزش به شما کمک کرد؟