حذف آدرس public در codeigniter 4
در نسخه ی چهارم فریمورک کدایگنایتر در حالت پیشفرض مسیر اجرای برنامه در فولدری به نام public موجود است که اگر بخواهید این مسیر را تغییر دهید باید یک سری کارهای کوچکی انجام دهید که در این نوشته به بررسی آنها میپردازیم.
حذف آدرس public در codeigniter 4
ابتدا به بررسی ساختار پوشههای فریمورک codeigniter میپردازیم.
ساختار پوشههای codeigniter 4
ساختار پوشههای فریمورک کدایگنایتر چهار به شرح زیر است:
- app
- Config
- boot
- Controllers
- Database
- Migrations
- Seeds
- Filters
- Helpers
- Language
- Libraries
- Models
- ThirdParty
- Views
- errors
- Config
- public
- system
- API
- Autoloader
- Cache
- CLI
- Commands
- Config
- Database
- Debug
- Encryption
- Events
- Exceptions
- Files
- و …
- writable
فایلهای موجود در پوشهی public به شرح زیر است:
- .htaccess
- favicon.ico
- index.php
- robots.txt
روش حذف پوشهی public در کدایگنایتر 4
ابتدا محتویات پوشه ی public را به مسیر اصلی بیاورید. بعد از اینکار فایل index.php را برای ویرایش باز کنید؛ به دنبال قطعه کد زیر بگردید:
$pathsPath = realpath(FCPATH . '../app/Config/Paths.php');
سپس این بخش را به شکل زیر در بیاورید:
$pathsPath = realpath(FCPATH . 'app/Config/Paths.php');
و بعد این فایل را ذخیره کنید. از حالا به بعد مسیر اجرای برنامهی شما آدرس public را ندارد.
اگر روشهای بهتری برای حذف و انتقال این پوشه دارید در بخش نظرات برای ما بنویسید.



















آیا میشه این کار رو با تنظیم VirtualHost در Apache انجام داد و نیازی به جابهجایی فایلها نباشه؟
بله.
بعد از تغییر مسیر، لینکهای قبلی سایت به مشکل نمیخورن؟
با ۳۰۱ انتقال دهید.
جابهجایی فایلهای public به ریشه پروژه از نظر امنیتی مشکلی ایجاد نمیکنه؟
اگر به طور اصولی انجام شود خیر.
این روش روی همه نسخههای CI4 جواب میده یا فقط نسخههای قدیمیتر؟
بله در نسخههای ۳ یا ۲ تفاوت دارد ولی در نسخهی ۴ خیر.
ممنون مهندس عالی بود
موفق باشید