How Can I Remove “public/index.php” in the URL Generated Laravel?
Option 1: Use .htaccess
If it isn't already there, create an .htaccess file in the Laravel root directory.
Create a .htaccess
file your Laravel root directory if it does not exists already. (Normally it is under your public_html
folder)
Edit the .htaccess file so that it contains the following code:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Now you should be able to access the website without the "/public/index.php/" part.
Option 2 : Move things in the '/public' directory to the root directory
Make a new folder in your root directory and move all the files and folder except public folder. You can call it anything you want. I'll use "laravel_code".
Next, move everything out of the public directory and into the root folder. It should result in something somewhat similar to this:
After that, all we have to do is edit the locations in the laravel_code/bootstrap/paths.php
file and the index.php
file.
In laravel_code/bootstrap/paths.php
find the following line of code:
'app' => __DIR__.'/../app',
'public' => __DIR__.'/../public',
And change them to:
'app' => __DIR__.'/../app',
'public' => __DIR__.'/../../',
In index.php
, find these lines:
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';
And change them to:
require __DIR__.'/laravel_code/bootstrap/autoload.php';
$app = require_once __DIR__.'/laravel_code/bootstrap/start.php';
Source: How to remove /public/ from URL in Laravel
Laravel 5 – Remove Public from URL
For Laravel 5:
- Rename
server.php
in your Laravel root folder toindex.php
- Copy the
.htaccess
file from/public
directory to your Laravel root
folder.
That's it!
Laravel 5.8 Remove index.php from url
I Got the solution. Thanks for your help.
In order to use mod_rewrite you can type the following command in the terminal:
sudo a2enmod rewrite
Restart apache2 after
sudo systemctl restart apache2
Here is root directory .htaccess file:
<IfModule mod_rewrite.c>
Options +FollowSymLinks -Indexes
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Related Topics
How to Initialize Static Variables
Curl Error 60, Ssl Certificate Issue: Self Signed Certificate in Certificate Chain
What Is the Best Method to Merge Two PHP Objects
Calling Non-Static Method With Double-Colon(::)
How to Fix the Session_Register() Deprecated Issue
Generate Json String from Multidimensional Array Data
Get Content Between Two Strings PHP
Laravel 5 Pdoexception Could Not Find Driver
How to Make a PHP Soap Call Using the Soapclient Class
Show Values from a MySQL Database Table Inside a HTML Table on a Webpage
Selecting a CSS Class With Xpath