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

时间:2015-05-07 06:39:22

标签: php .htaccess mod-rewrite url-rewriting public

我有一个Laravel项目

我的域名 domain.com.tw

,网址为 domain.com.tw/public

可以显示页面。

我想删除网址中的public

所以我在RewriteRule中用.htaccess写道:

<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>

但它对我不起作用 我也看过这些,但仍然失败

Apache Mod Rewrite For Laravel

Laravel 4.2 rewrite URL - remove public

有人可以告诉我解决方案吗?谢谢!

1 个答案:

答案 0 :(得分:0)

在root上创建一个名为“whatever”的文件夹(您可以给出任何名称)。 在“whatever”文件夹中移动除公用文件夹以外的所有文件。 将所有公共文件移动到根目录并删除空白公用文件夹。 所以目录结构将是:

  1. 无论什么 - 除了公共文件夹
  2. 之外的所有根文件
  3. 公用文件夹的所有文件。
  4. 现在是时候改变一些路径了 在paths.php中更改以下代码 'public' => __DIR__.'/../public''public' => __DIR__.'/../../'

    打开index.php(在root上)并找到下面的代码

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

    将此更改为

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

    希望这有助于或至少给你一些想法