Host Laravel in Subdirectory with Apache

Hosting Laravel di Sub folder

Kasus ketika ingin menghosting aplikasi Laravel di subfolder pada server yang menggunakan Apache

Misalnya kita mempunyai domain http://example.com yang sudah berjalan untuk website dan ingin menambahkan /simpelapp, dimana /simpelapp adalah aplikasi kita yang dibuat dengan Laravel

Contoh :

//Ini adalah directory utama, contohnya untuk menyimpan file website ketika http://example.com diakses
/var/www/public_html

//ini adalah directory aplikasi laravel ketika http://example.com/simpelapp diakses
/var/www/public_html/simpelapp

Langkah pertama, simpan semua file Laravel pada directory simpelapp

Selanjutnya, buka file .htaccess yang terdapat pada /var/www/public_html/simpelapp/public, lalu rubah konfigurasi seperti contoh berikut:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On
    RewriteBase /simpelapp/ 
    #ini disesuaikan dengan nama aplikasi/subdirectory

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

Selanjutnya buka konfigurasi virtual host , biasanya terletak pada /etc/apache2/sites-available (bisa berbeda, tergantung OS yang digunakan), kemudian sesuaikan konfigurasi seperti contoh berikut:

define ROOT "/var/www/public_html"
define SITE "example.com"

<VirtualHost *:80> 
    DocumentRoot "${ROOT}"
    ServerName ${SITE}
    #ServerAlias *.${SITE}

    Alias /simpelapp "/var/www/public_html/simpelapp/public"

    <Directory "${ROOT}">
        AllowOverride All
        Require all granted
    </Directory>

     <Directory /var/www/public_html/simpelapp/public>
	Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Kemudian restart apache

systemctl restart apache2

Catatan :

Postingan ini dibuat sebagai catatan penulis, tidak menjamin konfigurasi tersebut berjalan baik pada server anda.

ruswandi
ruswandi
Articles: 5