Reputation: 2505
I'm following the following Structure as I don't want to expose my code to the public.
The folder structure in my localhost is
tbt
tbt/user/
tbt/public_html/
where user contains all the folder of root without the public folder and public_html contains the public files.
And I have changed in below lines in public_html/index.php:
require __DIR__.'/../user/bootstrap/autoload.php';
$app = require_once __DIR__.'/../user/bootstrap/app.php';
But when i run the application,
I'm getting Url like localhost/tbt/user/xxxx
But it should be localhost/tbt/xxx
I have followed this solution for solving the problem but couldn't solve it as My application is on Laravel 5. Anyone who can help me to find the solution please?
Upvotes: 3
Views: 2844
Reputation: 1238
In the root directory of your Laravel project create a file with name .htacess
and paste this code in it
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]
RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php
Upvotes: 1
Reputation: 1197
You can setup a alias in your web server, pointing to your public folder. It's simple but works for me
https://httpd.apache.org/docs/2.4/urlmapping.html
Upvotes: 1
Reputation: 12343
Process 1
Process 2
Follow process 1
Update the .htaccess as below
.htaccess look like below
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(css|js|images)/(.*)$ public/$1/$2 [L,NC]
Upvotes: 1