{"id":5267,"date":"2025-07-22T20:27:39","date_gmt":"2025-07-22T13:27:39","guid":{"rendered":"https:\/\/www.impactly.id\/blog\/?p=5267"},"modified":"2025-07-22T20:49:47","modified_gmt":"2025-07-22T13:49:47","slug":"cara-menghilangkan-url-public-di-laravel-12","status":"publish","type":"post","link":"https:\/\/www.impactly.id\/blog\/cara-menghilangkan-url-public-di-laravel-12\/","title":{"rendered":"Cara Simple Menghilangkan URL Public di Laravel 12"},"content":{"rendered":"\n<p>Saat pertama kali install Laravel 12, kamu mungkin notice kalau URL project kamu jadi ada tambahan \/public di belakangnya. Nah, ini kadang bikin tampilan URL jadi kurang rapi dan tidak SEO friendly, apalagi kalau udah mau dipakai di production.<\/p>\n\n\n\n<p>Tenang aja, ada kok cara simple menghilangkan url public di Laravel 12 tanpa harus pusing utak-atik terlalu banyak dan tentunya tetap aman!<\/p>\n\n\n\n<p>Di artikel ini, Impactly bakal bahas beberapa cara yang mudah dan aman biar URL kamu bisa langsung mengarah ke root Laravel tanpa embel-embel &#8220;public&#8221; lagi. Yuk, simak bareng!<\/p>\n\n\n\n<p>Sebelum itu, perlu diketahui tutorial ini merupakan pembaruan versi terbaru dari artikel sebelumnya pada <a href=\"https:\/\/www.impactly.id\/blog\/cara-simple-menghilangkan-url-public-di-laravel-8\/\" data-type=\"post\" data-id=\"284\">versi laravel 8<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cara Menghilangkan URL Public di Laravel 12<\/h2>\n\n\n\n<p>Kamu terganggu karena URL Laravel 12 kamu selalu muncul pakai \/public di belakang? Tenang, ada cara simple buat ngilangin itu tanpa ribet. Yuk ikuti langkah-langkah berikut!<\/p>\n\n\n\n<p>Impactly akan memberikan tutorial dari awal instalasi Laravel agar yang baru menggunakan Laravel juga bisa lebih mudah memahaminya. Jika kamu sudah menginstallnya bisa langsung ke langkah 3.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Install Laravel 12<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"466\" src=\"https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-at-Jul-20-20-20-39-1024x466.png\" alt=\"\" class=\"wp-image-5273\" style=\"width:500px\" srcset=\"https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-at-Jul-20-20-20-39-1024x466.png 1024w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-at-Jul-20-20-20-39-300x137.png 300w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-at-Jul-20-20-20-39-768x350.png 768w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-at-Jul-20-20-20-39-860x391.png 860w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-at-Jul-20-20-20-39.png 1094w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Pertama-tama install Laravel 12 pada direktori yang kamu inginkan (umumnya di htdocs), lalu buka terminal pada direktori tersebut dan gunakan perintah:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>laravel new example-app<\/code><\/pre>\n\n\n\n<p>Ganti &#8220;example-app&#8221; dengan nama project kamu. Nama project ini nantinya akan membuat folder project secara otomatis. Dokumentasinya bisa kamu lihat pada <a href=\"https:\/\/laravel.com\/docs\/12.x\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">situs resmi Laravel<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" loading=\"lazy\" decoding=\"async\" width=\"896\" height=\"732\" src=\"https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-at-Jul-20-20-44-59.png\" alt=\"\" class=\"wp-image-5287\" style=\"width:400px\" srcset=\"https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-at-Jul-20-20-44-59.png 896w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-at-Jul-20-20-44-59-300x245.png 300w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-at-Jul-20-20-44-59-768x627.png 768w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/Screenshot-at-Jul-20-20-44-59-860x703.png 860w\" sizes=\"(max-width: 896px) 100vw, 896px\" \/><\/figure>\n\n\n\n<p>Jika sudah akan muncul folder project seperti gambar di atas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Jalankan Project Laravel<\/h3>\n\n\n\n<p>Lalu jalankan project laravel di browser. Pada artikel ini Impactly menjalankan project di local server menggunakan MAMP dengan alamat url http:\/\/localhost:8888\/example-app\/public\/. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"400\" src=\"https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/cara-menghilangkan-url-public.jpg\" alt=\"tutorial laravel 12\" class=\"wp-image-5314\" srcset=\"https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/cara-menghilangkan-url-public.jpg 700w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/cara-menghilangkan-url-public-300x171.jpg 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure>\n\n\n\n<p>Gambar di atas merupakan tampilan awal dengan menggunakan url \/public. Jika tidak menggunakan url \/public, maka tampilannya seperti di bawah ini.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" loading=\"lazy\" decoding=\"async\" width=\"699\" height=\"1024\" src=\"https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/image-2-699x1024.png\" alt=\"\" class=\"wp-image-5316\" style=\"width:300px\" srcset=\"https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/image-2-699x1024.png 699w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/image-2-205x300.png 205w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/image-2-768x1125.png 768w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/image-2.png 782w\" sizes=\"(max-width: 699px) 100vw, 699px\" \/><\/figure>\n\n\n\n<p>Hal ini akan menyulitkan dalam membuat website dengan url yang clean dan tidak SEO friendly. Terlebih jika website tersebut digunakan untuk menghasilkan penjualan bisnis melalui pencarian organik yang mengandalkan strategi SEO.<\/p>\n\n\n\n<p>Lalu gimana solusinya? Yuk simak terus lanjutannya.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Pindahkan Isi Folder &#8220;public\/&#8221; ke Root<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" loading=\"lazy\" decoding=\"async\" width=\"870\" height=\"324\" src=\"https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/image-4.png\" alt=\"\" class=\"wp-image-5329\" style=\"width:300px\" srcset=\"https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/image-4.png 870w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/image-4-300x112.png 300w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/image-4-768x286.png 768w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/image-4-860x320.png 860w\" sizes=\"(max-width: 870px) 100vw, 870px\" \/><\/figure>\n\n\n\n<p>Masuk ke folder <code>public\/<\/code>, lalu pindahkan semua isinya ke direktori utama Laravel kamu (root project). File yang dipindahkan adalah <code>index.php<\/code>, <code>.htaccess<\/code>, <code>favicon.ico<\/code>, dan lainnya. Kurang lebih tampilan pada folder root project menjadi seperti berikut.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"950\" src=\"https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/image-3-1024x950.png\" alt=\"\" class=\"wp-image-5320\" style=\"width:400px\" srcset=\"https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/image-3-1024x950.png 1024w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/image-3-300x278.png 300w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/image-3-768x713.png 768w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/image-3-860x798.png 860w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/image-3.png 1416w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Cara ini sangat simple dan aman, cocok buat kamu yang pakai shared hosting atau butuh solusi cepat.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. <strong>Edit &#8220;index.php&#8221; di root folder:<\/strong><\/h3>\n\n\n\n<p>Kemudian buka <code>index.php<\/code> yang sudah kamu pindah ke root. Ubah dua baris ini:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>require __DIR__.'\/..\/vendor\/autoload.php';\n$app = require_once __DIR__.'\/..\/bootstrap\/app.php';<\/code><\/pre>\n\n\n\n<p>Menjadi (tanpa titik dua):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>require __DIR__.'\/vendor\/autoload.php';\n$app = require_once __DIR__.'\/bootstrap\/app.php';<\/code><\/pre>\n\n\n\n<p>Kurang lebih hasilnya seperti ini:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" loading=\"lazy\" decoding=\"async\" width=\"844\" height=\"230\" src=\"https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/image-5.png\" alt=\"\" class=\"wp-image-5337\" style=\"width:400px\" srcset=\"https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/image-5.png 844w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/image-5-300x82.png 300w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/image-5-768x209.png 768w\" sizes=\"(max-width: 844px) 100vw, 844px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">5. Cek Kembali URL di Browser<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"400\" src=\"https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/cara-menghilangkan-url-public-di-laravel-12.jpg\" alt=\"cara menghilangkan url public di laravel\" class=\"wp-image-5321\" srcset=\"https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/cara-menghilangkan-url-public-di-laravel-12.jpg 700w, https:\/\/www.impactly.id\/blog\/wp-content\/uploads\/2025\/07\/cara-menghilangkan-url-public-di-laravel-12-300x171.jpg 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure>\n\n\n\n<p>Sekarang kamu bisa akses Laravel tanpa <code>\/public<\/code> di URL, misalnya <code>http:\/\/localhost:8888\/example-app\/<\/code> atau disesuaikan dengan nama folder project kamu.<\/p>\n\n\n\n<p>Gimana, mudah kan? Dengan langkah di atas, kamu bisa hilangkan <code>\/public<\/code> dari URL Laravel 12 tanpa ribet konfigurasi server. Tapi tetap hati-hati ya, pastikan struktur file kamu rapi biar nggak bikin error baru!<\/p>\n\n\n\n<p>Adapun pengujian ini dilakukan menggunakan:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sistem Operasi: Mac OS, Chip M1<\/li>\n\n\n\n<li>Browser: Chrome<\/li>\n\n\n\n<li>Local Server Apps: MAMP 7.2.0 ARM CPU (Free Version)<\/li>\n\n\n\n<li>Web Server: Apache<\/li>\n\n\n\n<li>Versi PHP: 8.4<\/li>\n\n\n\n<li>Code Editor: Visual Studio Code<\/li>\n\n\n\n<li>Terminal: Default<\/li>\n\n\n\n<li>Composer: Versi 2.8.10 dengan PHP 8.4<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Alasan Banyak Developer Ingin Menghilangkan Public dari URL<\/h2>\n\n\n\n<p>Kalau kamu sering ngoding pakai framework seperti Laravel, mungkin udah familiar dengan struktur foldernya. Secara default, file yang bisa diakses publik itu ada di folder <code>public<\/code>, dan kalau aplikasi dihosting begitu aja, URL-nya jadi seperti ini:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;domainmu.com\/public<\/code><\/pre>\n\n\n\n<p>Nah, banyak developer ingin menghilangkan url &#8220;\/public&#8221; ini. Kenapa? Berikut alasannya:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Tampilan URL Lebih Rapi dan Profesional<\/h3>\n\n\n\n<p>Salah satu alasan utama kenapa banyak developer ingin menghilangkan <code>\/public<\/code> dari URL adalah soal estetika dan profesionalitas. URL seperti <code>https:\/\/domain.com\/public\/about<\/code> terlihat kurang bersih dan terkesan seperti proyek yang belum selesai dikemas.<\/p>\n\n\n\n<p>Bandingkan dengan <code>https:\/\/domain.com\/about<\/code> yang jauh lebih rapi, singkat, dan terkesan lebih terpercaya, terutama kalau aplikasi tersebut digunakan untuk klien, publik, atau perusahaan.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Praktik Standar di Lingkungan Produksi<\/h3>\n\n\n\n<p>Dalam dunia profesional, standar terbaik (best practice) menyarankan agar folder <code>public<\/code> dijadikan satu-satunya direktori yang bisa diakses secara langsung oleh pengguna melalui web.<\/p>\n\n\n\n<p>Ini biasanya dilakukan dengan cara mengatur root direktori server (misalnya di Nginx atau Apache) langsung ke folder <code>public<\/code>.<\/p>\n\n\n\n<p>Dengan cara ini, developer bisa menyembunyikan struktur internal aplikasi dari akses publik agar lebih aman dan tanpa perlu mengubah URL jadi lebih panjang.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Lebih Baik untuk SEO dan Pengalaman Pengguna<\/h3>\n\n\n\n<p>URL yang bersih juga berdampak positif pada <a href=\"https:\/\/www.impactly.id\/blog\/seo-adalah\/\" data-type=\"post\" data-id=\"3269\">Search Engine Optimization (SEO)<\/a>. Mesin pencari seperti Google lebih menyukai struktur URL yang pendek, relevan, dan bebas dari &#8220;noise&#8221; seperti <code>\/public<\/code>.<\/p>\n\n\n\n<p>Selain itu, dari sisi pengguna, URL yang singkat lebih mudah diingat dan diketik ulang, yang pada akhirnya meningkatkan pengalaman pengguna secara keseluruhan.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Meningkatkan Keamanan Aplikasi<\/h3>\n\n\n\n<p>Folder <code>public<\/code> memang sengaja dibuat sebagai tempat semua file yang bisa diakses oleh pengguna, seperti gambar, JavaScript, atau file CSS. Sementara itu, folder lain seperti <code>app<\/code>, <code>config<\/code>, dan <code>vendor<\/code> seharusnya tidak bisa dijangkau langsung dari web.<\/p>\n\n\n\n<p>Dengan menyembunyikan struktur folder ini dan hanya menampilkan konten dari <code>public<\/code>, aplikasi menjadi lebih aman dari akses yang tidak diinginkan atau menjadi serangan potensial.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5. Mempermudah Proses Deployment<\/h3>\n\n\n\n<p>Mengatur server agar langsung mengarah ke folder <code>public<\/code> sejak awal juga membuat proses deployment lebih praktis.<\/p>\n\n\n\n<p>Developer tidak perlu lagi menggunakan solusi &#8220;setengah matang&#8221; seperti memindahkan isi folder atau menambahkan file <code>.htaccess<\/code> tambahan. Ini membuat proses pengembangan hingga produksi lebih terstruktur dan minim potensi error.<\/p>\n\n\n\n<p>Jadi intinya menghilangkan &#8220;\/public&#8221; dari URL itu bukan cuma soal estetika, tapi juga soal standar industri, keamanan, kenyamanan pengguna, dan <a href=\"https:\/\/www.impactly.id\/blog\/apa-itu-seo-friendly\/\" data-type=\"post\" data-id=\"3472\">SEO Friendly<\/a>.<\/p>\n\n\n\n<p>Meskipun bisa dibilang &#8220;hal kecil&#8221;, tapi ini salah satu sentuhan yang bikin aplikasi kamu terasa lebih matang dan profesional.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mengapa URL Public Muncul di URL Saat Deploy Laravel<\/h2>\n\n\n\n<p>Karena secara default, file utama Laravel yang bisa diakses oleh browser ada di dalam folder <code>public<\/code>. Jadi, kalau kamu langsung mengarahkan root server ke folder Laravel tanpa konfigurasi tambahan, URL-nya akan menyertakan <code>\/public<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Itu dia penjelasan lengkap tentang cara menghilangkan URL public di Laravel 12 dengan simple. Langkah-langkahnya sebenarnya nggak ribet, asal kamu tahu di mana harus mengatur root folder dan sedikit sentuhan konfigurasi server.<\/p>\n\n\n\n<p>Dengan URL yang lebih bersih dan rapi, aplikasi Laravel kamu jadi terlihat lebih profesional dan siap untuk production. Semoga tips ini membantu, dan jangan ragu untuk eksplorasi lebih jauh agar project-mu makin optimal!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Saat pertama kali install Laravel 12, kamu mungkin notice kalau URL project kamu jadi ada tambahan \/public di belakangnya. Nah, ini kadang bikin tampilan URL jadi kurang rapi dan tidak SEO friendly, apalagi kalau udah mau dipakai di production. Tenang aja, ada kok cara simple menghilangkan url public di Laravel 12 tanpa harus pusing utak-atik [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5325,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[16],"tags":[],"class_list":{"0":"post-5267","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-seo"},"_links":{"self":[{"href":"https:\/\/www.impactly.id\/blog\/wp-json\/wp\/v2\/posts\/5267"}],"collection":[{"href":"https:\/\/www.impactly.id\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.impactly.id\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.impactly.id\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.impactly.id\/blog\/wp-json\/wp\/v2\/comments?post=5267"}],"version-history":[{"count":29,"href":"https:\/\/www.impactly.id\/blog\/wp-json\/wp\/v2\/posts\/5267\/revisions"}],"predecessor-version":[{"id":5344,"href":"https:\/\/www.impactly.id\/blog\/wp-json\/wp\/v2\/posts\/5267\/revisions\/5344"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.impactly.id\/blog\/wp-json\/wp\/v2\/media\/5325"}],"wp:attachment":[{"href":"https:\/\/www.impactly.id\/blog\/wp-json\/wp\/v2\/media?parent=5267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.impactly.id\/blog\/wp-json\/wp\/v2\/categories?post=5267"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.impactly.id\/blog\/wp-json\/wp\/v2\/tags?post=5267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}