【问题标题】:Laravel .htaccess rewrite URL for removing publicLaravel .htaccess 重写 URL 以删除公共
【发布时间】:2015-07-17 14:07:39
【问题描述】:

我有一个 Laravel 项目

我的域名是domain.com.tw

并且网址将是domain.com.tw/public

页面可以显示了。

我想删除网址中的public

所以我在.htaccess 中写了RewriteRule

<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

谁能告诉我解决方案?谢谢!!

【问题讨论】:

  • 您使用的是 laravel 4 或 5 如果 5 您可以将外部公共目录中的 .htaccess 文件移动到根文件夹,然后将根文件夹中的 server.php 文件重命名为 index.php跨度>
  • 您好我在这个项目中使用 Laravel 4.2,所以 .htaccess 已经在根文件夹之外,是否还需要将 server.php 重命名为 index.php ?
  • 在 L5 中是这样,所以在 L4 中尝试一下
  • 如何将 apache 配置中的文档根目录从“your/path/to/laravel”更改为“your/path/to/laravel/public”

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


【解决方案1】:

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

  1. whatever——除了公用文件夹之外的所有根文件
  2. 公用文件夹的所有文件。

现在是时候改变一些路径了 在paths.php中更改以下代码 'public' =&gt; __DIR__.'/../public',转为'public' =&gt; __DIR__.'/../../'

打开 index.php(在根目录下)并找到以下代码

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

希望这对您有所帮助或至少能给您一些想法

【讨论】:

  • 哟谢谢伙计,通过更改 path.phpindex.php,最后这个解决方案对我有用。
  • 很高兴@JasperChang 对你有帮助
猜你喜欢
  • 2014-12-03
  • 2016-12-02
  • 1970-01-01
  • 2019-06-27
  • 2018-04-20
  • 2015-06-09
  • 1970-01-01
  • 1970-01-01
  • 2013-09-15
相关资源
最近更新 更多