James
James

Reputation: 400

Laravel 5.2 access example.com/ instead of example.com/public in shared hosting

so i want to upload my laravel project to shared hosting. After completing it, when i want to access my website (just call it www.example.com) it goes to /public directory and my solution is add route for /public as my homepage but i don't want it.

so here my website path

/
/laravel
/public_html
/tmp

here is my .htaccess

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

    RewriteEngine On

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

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

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

And here is my public_html/index.php

<?php

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

$app = require_once __DIR__.'/../laravel/bootstrap/app.php';

$app->bind('path.public', function() {
return __DIR__;
});

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);

$response->send();

$kernel->terminate($request, $response);

Upvotes: 0

Views: 72

Answers (1)

Mortada Jafar
Mortada Jafar

Reputation: 3679

you should upload your your Laravel project to public_html folder then add .htaccess file to root project

.htaccess file:

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

Upvotes: 1

Related Questions