# تقديم Laravel من مجلد public
Source: https://docs.webgee.com/ar/development/laravel-public-directory



اجعل `example.com` يقدّم تطبيق Laravel دون `/public` في الرابط. ينطبق على
الاستضافة المشتركة والموزِّعة والمميّزة.

يتوقّع Laravel أن يكون مجلد `public` وحده متاحًا للويب. وعلى الاستضافة المشتركة
لا تستطيع عادةً تغيير الجذر المستنَدي، فتؤدي قاعدة إعادة كتابة المهمة نفسها.

<Callout type="warn">
  هذا يهمّ للأمان لا للترتيب فقط. فإن كان مجلد Laravel كله متاحًا للويب، فيمكن
  طلب `.env` — الذي يحمل كلمة مرور قاعدة بياناتك ومفتاح التطبيق — مباشرة عبر
  HTTP.
</Callout>

## أضف إعادة الكتابة [#أضف-إعادة-الكتابة]

1. في cPanel، افتح **File Manager** وانتقل إلى `public_html`.

2. فعّل &#x2A;*Settings ← Show Hidden Files (dotfiles)**، فـ `.htaccess` مخفي
   افتراضيًا.

3. افتح `.htaccess`، أو أنشئه إن لم يكن موجودًا.

4. أضف هذا في **أعلى** الملف:

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

5. احفظ.

## تأكّد أنه نجح [#تأكّد-أنه-نجح]

زر `https://example.com`. وينبغي أن يُحمَّل تطبيقك، دون `/public` في العنوان.

ثم تأكّد أن الملف المهم غير قابل للوصول:

```bash
curl -sI https://example.com/.env | head -n 1
```

وتريد `403` أو `404`. أما `200` فتعني أن `.env` يُقدَّم — توقّف وأصلح ذلك قبل
المضيّ.

## خيار أفضل إن كان متاحًا لك [#خيار-أفضل-إن-كان-متاحًا-لك]

على خادم VPS أو مخصّص، اضبط الجذر المستنَدي على مجلد `public` مباشرة في WHM بدل
إعادة الكتابة. فهو جزء متحرّك أقل، ولا يُكشَف شيء فوق `public` أصلًا.

## إن لم ينجح [#إن-لم-ينجح]

* **حلقة إعادة توجيه** — فهناك `RewriteRule` أخرى فوق هذه. ويجب أن تأتي قاعدة
  Laravel أولًا.
* **الرابط القديم مخزَّن مؤقتًا** — امسح ذاكرة متصفحك، أو اختبر في نافذة خاصة.
* **خطأ 500** — راجع `error_log` في `public_html`. راجع
  [العثور على سجل الأخطاء](/ar/development/how-do-i-find-my-error-log-file-to-find-errors-for-my-php-application).

## اقرأ أيضًا [#اقرأ-أيضًا]

* [تفعيل عرض فهارس المجلدات عبر ‎.htaccess](/ar/hosting/enable-directory-index-listings-using-htaccess)
* [العثور على سجل الأخطاء](/ar/development/how-do-i-find-my-error-log-file-to-find-errors-for-my-php-application)
