در این پست خواهید خواند:
در این آموزش میخواهیم ببینیم چطور میشود پوشه public لاراول رو به public_html یا هر نام دیگه ای تغییر داد و سپس بقیه فایل ها را درون یک فولدر انتقال دهیم و با نامی مجزا در کنار public_html داشته باشیم (برای عدم دستری از روت سایت به فایل ها و پوشه های لاراول)
فرض کنید میخواهیم برای پروژه فقط دو فولدر public_html و laravel داشته باشم که بجز public_html همه فایل ها و فولدر های قدیم داخل laravel باشند:
۱. ابتدا فایل index.php از فولدر public رو ویرایش مینمائیم.
//دو خط زیر رو تغییر مسیر بدید به آدرس جدیدتونrequire __DIR__.'/../laravel/vendor/autoload.php'; $app = require_once __DIR__.'/../laravel/bootstrap/app.php';
۲. فایل AppServiceProvider.php که در مسیر app/Providers هست رو ویرایش و کد زیر را به متد register اضافه و آدرس دهی مناسب مینمائیم.
$this->app->bind('path.public', function() { return realpath(base_path().'/../public_html'); });
۳. فایل server.php از روت پروژه را ویرایش میکنیم و در ۲ قسمت باید آدرس جدید رو قرار دهیم.
if ($uri !== '/' && file_exists(__DIR__.'/../public_html'.$uri)) { return false; } require_once __DIR__.'/../public_html/index.php';
حالت دوم زمانی میباشد که پوشه ای بنام public داشته باشیم فایل های سایت داخل آن باشند و بدون انجام تغییرات فوق قصد داشته باشیم هنگام وارد کردن آدرس سایت در مرورگر بجای نمایش public_html محتویات public نمایش داده شوند.
برای این کار میتوانیم از فایل htaccess. استفاده نمائیم.
RewriteEngine on RewriteCond %{REQUEST_URI} !^public RewriteRule ^(.*)$ public/$1 [L]
موفق باشید.