نحوه حذف public از آدرس لاراول

اگر وبسایت خود را با استفاده از فریم ورک لاراول طراحی کردید ممکن است در هنگام مراجعه به وبسایت به جای مشاهده آن با لیستی از فایل های موجود در root وبسایت خود مواجه شوید یا اینکه برای مشاهده وبسایت مجبورید از آدرس زیر استفاده کنید:
http://domain.com/public

اما چگونه می توان این مشکل را رفع کرد؟ به طوریکه با مراجعه به آدرس وبسایت، مستقیما محتویات public بدون درج آن در آدرس url نمایش داده شود؟


برای اینکار کافیست یک فایل با نام .htaccess در مسیر پروژه لاراول ایجاد کنید و سپس کد زیر را در آن قرار دهید:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
چنانچه در هنگام ایجاد فایل با خطا مواجه شدید، ممکن است این فایل از قبل در هاست شما ساخته شده باشد اما مخفیست. بنابراین با استفاده از این راهنما به آن دسترسی پیدا کنید.

کار تمام شد! با همین اقدام ساده وبسایت شما بدون نیاز به قرار دادن public در آدرس url، نمایش داده خواهد شد.

 

حذف کلیه آدرس‌های مبتنی بر /public

با اقدام فوق عنوان public از آدرس وبسایت حذف می‌شود اما در عین حال وبسایت شما از هر دو آدرس زیر در دسترس خواهد بود:

http://domain.com

http://domain.com/public

 

برای اینکه به طور کلی و به لحاظ ارتقا سطح SEO هیچ آدرس از وبسایت با /public باز نشود، لازم است مراحل زیر را نیز طی کنید:

1- اطمینان حاصل کنید که در مسیر اصلی پروژه لاراول فایل index.php وجود داشته باشد. (در صورتیکه وجود نداشت، فایل Server.php را به index.php تغییر دهید.)

2- فایل .htaccess موجود در مسیر اصلی پروژه لاراول (در مثال ما public_html) را به .htaccess_old تغییر دهید.

3- فایل .htaccess موجود در پوشه public را به مسیر اصلی پروژه لاراول (در مثال ما public_html) منتقل کنید.

4- از طریق بخش Redirect موجود در پنل هاست (مانند cPanel) آدرس domain.com/public را به domain.com، Redirect کنید.

 

در صورتیکه در پنل هاست شما قابلیت Redirect وجود نداشت، کد زیر را با جایگزین کرد دامنه خود به انتهای فایل .htaccess واقع در مسیر اصلی پروژه لاراول اضافه کنید:
RewriteCond %{HTTP_HOST} ^domain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.domain\.com$
RewriteRule ^public\/?$ "https\:\/\/domain\.com\/" [R=301,L]

 

کار تمام شد! با انجام 4 مرحله فوق، آدرس‌های داخلی ایجاد شده با /public با پیام Not Fount مواجه می‌شوند و آدرس وبسایت با /public به بدون آن هدایت می‌شود:

http://domain.com/public    >    http://domain.com

 

 

 

  • حذف public در آدرس لاراول, حذف public از url لاراول
  • 36 کاربر این را مفید دانستند
آیا این آموزش به شما کمک کرد؟

مقالات مربوطه

چگونگی اجرای اسکریپت های Python در cPanel

کدها و اسکریپت های Python با روشی خاص در cPanel قابل اجرا هستند. بنابراین چنانچه از کدهای Python...

نحوه نصب و فعال سازی فریم ورک Laravel در cPanel

از آنجاییکه که Laravel یک فریم ورک است بنابراین لازم است زیر ساخت آن که در واقع همان PHP می باشد...

نحوه اجرای کامندهای Artisan در هاست اشتراکی

Artisan (آرتیزان) یک رابط خط فرمان است که با فریم ورک محبوب لاراول ارائه می شود. برنامه نویسان می...

رفع خطای PHP Parse error: syntax error, unexpected '?' in ../vendor/laravel/framework/src/Illuminate/Foundation/helpers.php on line 233

گاهاً پیش می‌آید که در حال راه‌اندازی و یا استفاده از لاراول هستید و با وجود اینکه مشکلی در کدهای...

رفع خطای Internal Server Error در لاراول

اکنون که در حال مطالعه این مقاله هستید، ممکن است شما نیز با خطای Internal Server Error در پروژه...