Laravel .htaccess重写用于删除公共的URL

I have a Laravel project

My domain is domain.com.tw

and the URL will be domain.com.tw/public,

and the page could be showed.

I want to remove the public in URL,

so I write RewriteRule in .htaccess with:

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

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

but it did not work for me I had look at these also, but still failed

Apache Mod Rewrite For Laravel

Laravel 4.2 rewrite URL - remove public

could someone tell me the solution? thanks!!

Create a folder on root with named “whatever”(you can give any name). Move all files except public folder in the “whatever” folder. Move all the files of public to root directory and remove blank public folder. so directory structure will be:

  1. whatever– which have all root files except public folder
  2. all files of public folder.

Now time to change some paths in paths.php change the following code 'public' => __DIR__.'/../public', into 'public' => __DIR__.'/../../',

open index.php (on root) and find below code

require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';

change this to

require __DIR__.'/local/bootstrap/autoload.php';
$app = require_once __DIR__.'/local/bootstrap/start.php';

Hope this helps or at least give you some idea