איך לשנות את מבנה התיקיות ב-Laravel

כשעובדים עם Laravel

ורוצים להסתיר את כל תיקיות האפליקציה

ורוצים נניח שלא יופיע בכתובת התיקיה public

אפשר לעשות זאת כך :

2 שלבים:

שינויים שצריך לעשות בקובץ index.php בתוך תיקית public

קודם כל תעתיקו את תוכן תיקית public למיקום שבו אתם רוצים שקובץ ה-index יופעל

נניח אם רוצים שהוא יופעל מהדומיין עצמו, בלי תת-תיקיה

אז נעתיק את תוכן התיקיה public אל /var/www (זה משתנה משרת לשרת, למשל ב-cpanel זה נקרא public_html).

 

אחרי שהעתקנו , נערוך את index.php

נשנה את 2 השורות הבאות :

require __DIR__.'/../bootstrap/autoload.php';

$app = require_once __DIR__.'/../bootstrap/start.php';

ונרשום את התיקיות עצמן, בצורה יחסית

שינויים שצריך לעשות בתיקית bootstrap

עכשיו, נעתיק את כל שאר התיקיות , חוץ מ-public שכבר טיפלנו בה

נעתיק את כל השאר אל מקום אחר בשרת

זה יכול להיות גם מקום שכלל לא "חשוף" ל-Apache.

שזה גם בטיחותי יותר.

ואז ניכנס אל המיקום החדש של תיקית bootstrap

ויש שם קובץ path.php

ונשנה שם את הערך של public למיקום היחסי החדש שלו.

'public' => __DIR__.'/../public',

 

ואחרי כן

המערכת כבר תעבוד חלק.

סיכום השינויים :

  1. להעתיק את תוכן public למיקום שבו אתם רוצים שהמערכת תרוץ

  2. לשנות בתוך index.php את מיקומי התיקיות

  3. להעתיק את כל שאר התיקיות (למעט public) אל מיקומן החדש, עדיף מחוץ לטווח של Apache

  4. לשנות בתוך תיקית bootstrap (במיקומה החדש) את קובץ path.php, את הערך של המפתח public

 

בהצלחה!

 

מקור :

http://stackoverflow.com/questions/19923091/avoid-public-folder-of-laravel-and-open-directly-the-root-in-web-server