Secara serta-merta menaruh semua file Laravel ke shared hosting memang sangat tidak aman. Jika ada saja yang terlewat, bisa jadi celah yang sangat berbahaya dikemudian hari. Untuk itu, harus ada beberapa folder dan file yang disembunyikan dari publik/web.

NB. SAYA TIDAK MENJAMIN TIDAK ADA KERUSAKAN DATA YANG TERJADI, SILAKAN BACKUP SEMUA SISTEM DAN DATA YANG DIPERLUKAN. TUTORIAL DIBAWAH INI SUDAH SAYA COBA DAN BERJALAN TANPA MASALAH.

Saya mengasumsikan, direktori hosting anda seperti ini /home/username/public_html

  1. Buat folder diluar public_html atau htdocs, misal
    /home/username/main-laravel

  2. Pindahkan semua direktori Laravel (app, boostrap, vendor, composer.json, composer.lock, phpunit.xml etc) ke folder yang sudah kita buat tadi, kecuali folder public

  3. Buka file /home/username/main-laravel/bootstrap/paths.php, dengan CPanel editor atau lewat FTP dan edit menjadi seperti ini:

  • ganti

'app' => __DIR__.'/../app',

ke

'app' => __DIR__.'/../../main-laravel/app',
  • ganti
'public' => __DIR__.'/../public',

ke

'public' => __DIR__.'/../../public_html/laravel',
  • ganti
'base' => __DIR__.'/..',

ke

'base' => __DIR__.'/../../main-laravel',
  • ganti
'storage' => __DIR__.'/../app/storage',

ke

'storage' => __DIR__.'/../../main-laravel/app/storage',

Simpan file itu.

  1. Kemudian buat lagi folder bernama “laravel” di public_html /home/username/public_html/laravel

  2. Pindah semua file di public_html tadi ke folder “laravel” yang dibuat distep 4

  3. Buka file /home/username/public_html/laravel/index.php dan edit menjadi seperti ini:

  • ganti

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

ke

require __DIR__.'/../../main-laravel/bootstrap/autoload.php';
  • ganti
$app = require_once __DIR__.'/../bootstrap/start.php';

ke

$app = require_once __DIR__.'/../../main-laravel/bootstrap/start.php';
  1. Lalu buat file .htaccess di /home/username/public_html dan tuliskan ini:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^laravel
RewriteRule ^(.*)$ laravel/$1 [L]
  1. Pastikan semua langkah sudah benar dan sudah anda simpan semua perubahan. Silakan coba, seharusnya http://namadomain.com yang anda punya sudah bisa diakses dengan benar.