htaccess重写laravel项目的url以从url中排除文件夹目录

问题描述

我安装了ubuntu 16.04服务器,并且在其中有很多laravel项目 / var / www / html,其数字文件夹如下所示:

<pre>
    121744
       content
         app
         bootstrap
         config
         database
         public
         resources
         routes
         storage
         tests
         vendor
         composer.json
         composer.lock
         server.PHP   
         ....
</pre>


<pre>
    12877
       content
         app
         bootstrap
         config
         database
         public
         resources
         routes
         storage
         tests
         vendor
         composer.json
         composer.lock
         server.PHP   
         ....
</pre>

<pre>
    8798
       content
         app
         bootstrap
         config
         database
         public
         resources
         routes
         storage
         tests
         vendor
         composer.json
         composer.lock
         server.PHP   
         ....
</pre>

按照上述文件夹在浏览器中打开laravel应用程序,网址如下所示:

http://example.com/121744/content/public

http://example.com/12877/content/public

http://example.com/8798/content/public

URL中的内容是常见的。 我想从网址中删除内容,以便该网址应如下所示:

http://example.com/121744/public

http://example.com/12877/public

http://example.com/8798/public

.htaccess文件var/www/html/.htaccess中的位置。

请帮助我,我如何让htaccess做到这一点?

解决方法

请您尝试以下。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(\d+)/content/([\w-]+)/?$ /$1/$2 [NC,L]

如果每次固定您的public目录,请尝试:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(\d+)/content/(public)/?$ /$1/$2 [NC,L]