تغییر مسیر public به public_html در Laravel 11

  • 27 بهمن 1403
0 دیدگاه
خلاصه مطلب

نحوه تغییر مسیر پیش‌فرض public به public_html در Laravel 11 برای هاست‌های اشتراکی را توضیح داده‌ایم تا بتوانید پروژه خود را بدون مشکل اجرا کنید.

تغییر مسیر public به public_html در Laravel 11 (مخصوص هاست اشتراکی)

در هاست‌های اشتراکی، دایرکتوری اصلی که به عنوان روت سایت در نظر گرفته می‌شود، معمولاً public_html است. اما در Laravel به‌صورت پیش‌فرض، فایل‌های عمومی در دایرکتوری public قرار دارند. اگر بخواهید Laravel را روی هاست اشتراکی اجرا کنید، نیاز به تغییر مسیر public به public_html خواهید داشت. در این مقاله، به روش انجام این کار می‌پردازیم.

چرا باید مسیر public را تغییر دهیم؟

در بیشتر هاست‌های اشتراکی، امکان تنظیم دایرکتوری public به عنوان Root Directory وجود ندارد و تنها public_html به عنوان دایرکتوری اصلی شناخته می‌شود. بنابراین، برای اجرای صحیح Laravel بدون نیاز به تغییر ساختار هاست، لازم است مسیر public را به public_html تغییر دهیم.

مراحل تغییر مسیر public به public_html

۱. انتقال فایل‌های public به public_html

ابتدا تمامی محتویات پوشه public را به public_html منتقل کنید. این کار را می‌توان از طریق File Manager در پنل هاست یا از طریق FTP انجام داد.

۲. ویرایش فایل bootstrap/app.php

برای تغییر مسیر دایرکتوری public، باید فایل bootstrap/app.php را ویرایش کنیم. این فایل را باز کرده و تغییرات زیر را اعمال کنید:

<?php

use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;
use Symfony\Component\HttpKernel\Exception\HttpException;

$app = Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        web: __DIR__.'/../routes/web.php',
        commands: __DIR__.'/../routes/console.php',
        health: '/up',
    )
    ->withMiddleware(function (Middleware $middleware) {
        
    })
    ->withExceptions(function (Exceptions $exceptions) {
      
    })->create();

$app->usePublicPath(dirname(__DIR__) . '/public_html');

return $app;

این تغییر به Laravel می‌گوید که به جای public از public_html به عنوان مسیر دایرکتوری عمومی استفاده کند.

۳. بررسی و تنظیم .htaccess

ممکن است نیاز باشد فایل .htaccess را نیز تغییر دهید تا درخواست‌های ورودی به مسیر صحیح هدایت شوند. درون فایل .htaccess موجود در public_html، اطمینان حاصل کنید که محتوای زیر وجود دارد:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)$ public_html/$1 [L]
</IfModule>

این تغییرات باعث می‌شود که تمام درخواست‌ها به مسیر صحیح در public_html هدایت شوند.

۴. بررسی عملکرد تغییرات

اکنون سایت خود را بررسی کنید تا مطمئن شوید که همه چیز به درستی کار می‌کند. اگر با خطایی مواجه شدید، مسیر فایل‌ها و تغییرات انجام‌شده را دوباره بررسی کنید.


در بهبود مقاله شریک باشید

قبل از ثبت نظر باید وارد حساب کاربری خود شوید و اطلاعات پروفایل را کامل کنید

ثبت نام یا ورود
قوانین ارسال دیدگاه

لطفاً قبل از ارسال دیدگاه، قوانین زیر را مطالعه کنید:

  • دیدگاه باید مرتبط با موضوع مقاله باشد.
  • از به‌کار بردن الفاظ نامناسب خودداری کنید.
  • تبلیغات در بخش نظرات مجاز نیست.