مرکز آموزش

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

  • حذف public در آدرس لاراول, حذف public از url لاراول
  • 36

اگر وبسایت خود را با استفاده از فریم ورک لاراول طراحی کردید ممکن است در هنگام مراجعه به وبسایت به جای مشاهده آن با لیستی از فایل های موجود در 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

 

 

 

تمامی حقوق مادی و معنوی این مطلب متعلق به HiSupport است.
کپی برداری از مطالب تنها با ذکر منبع و لینک به وبسایت HiSupport بلامانع است.


آیا این آموزش به شما کمک کرد؟