ตัวเลือกที่ 1: ใช้. htaccess
หากยังไม่มีให้สร้างไฟล์. htaccess ในไดเรกทอรีรากของ Laravel สร้าง.htaccess
ไฟล์ไดเร็กทอรีรูท Laravel ของคุณหากยังไม่มีอยู่ (โดยปกติจะอยู่ภายใต้public_html
โฟลเดอร์ของคุณ)
แก้ไขไฟล์. htaccess เพื่อให้มีรหัสต่อไปนี้:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
ตอนนี้คุณควรจะสามารถเข้าถึงเว็บไซต์ได้โดยไม่ต้องมีส่วน "/public/index.php/"
ตัวเลือกที่ 2: ย้ายสิ่งต่างๆในไดเร็กทอรี '/ public' ไปยังไดเร็กทอรีราก
สร้างโฟลเดอร์ใหม่ในไดเรกทอรีรากของคุณและย้ายไฟล์และโฟลเดอร์ทั้งหมดยกเว้นโฟลเดอร์สาธารณะ คุณสามารถเรียกมันว่าอะไรก็ได้ที่คุณต้องการ ฉันจะใช้ "laravel_code"
จากนั้นย้ายทุกอย่างออกจากไดเร็กทอรีสาธารณะและไปที่โฟลเดอร์รูท ควรส่งผลให้เกิดสิ่งที่คล้ายกับสิ่งนี้:
หลังจากนั้นสิ่งที่เราต้องทำคือแก้ไขตำแหน่งในlaravel_code/bootstrap/paths.php
ไฟล์และindex.php
ไฟล์
ในlaravel_code/bootstrap/paths.php
หาบรรทัดต่อไปนี้ของรหัส:
'app' => __DIR__.'/../app',
'public' => __DIR__.'/../public',
และเปลี่ยนเป็น:
'app' => __DIR__.'/../app',
'public' => __DIR__.'/../../',
ในindex.php
ค้นหาบรรทัดเหล่านี้:
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';
และเปลี่ยนเป็น:
require __DIR__.'/laravel_code/bootstrap/autoload.php';
$app = require_once __DIR__.'/laravel_code/bootstrap/start.php';
ที่มา: วิธีลบ / สาธารณะ / จาก URL ใน Laravel
mod_rewrite
เปิดใช้งานแล้ว