如何在Laravel 5中设置基本路径

时间:2015-08-04 09:41:24

标签: php laravel

我将 Laravel的公用文件夹移至根文件夹,然后将 Laravel 移至自己的文件夹。所以我可以在共享主机上使用Laravel。它看起来像这样:

2015/08/04  18:13    <DIR>          .
2015/08/04  18:13    <DIR>          ..
2015/08/01  17:50               896 .htaccess
2015/07/29  17:39                 0 favicon.ico
2015/07/29  17:39             1,844 index.php
2015/08/04  17:19    <DIR>          laravel
2015/08/04  17:20    <DIR>          public
2015/08/01  17:46             1,165 README.md
2015/08/01  16:18                34 robots.txt
2015/08/04  17:20    <DIR>          static

例如,我正在使用public_path(),我得到了这个:

  

/ htdocs中/ laravel /公共

但我需要的是:

  

/ htdocs中/公共

我已经检查了/config/中的配置文件,但没有任何相关内容。

请告诉我如何解决它。 THX

(我的laravel版本 5.0.33

PS: 我试过这个方法: Laravel 5 on shared hosting - wrong public_path()

我在public_path()

中覆盖了AppServiceProvider
$this->app->bind('path.public', function() {
    return base_path() . '/';
});

但没有改变。

2 个答案:

答案 0 :(得分:1)

尝试使用以下内容在根目录中添加.htaccess,而不是移动公用文件夹:

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ public/    [L]
   RewriteRule    (.*) public/$1 [L]
</IfModule>

这会将所有请求重定向到/ public

答案 1 :(得分:1)

通过将公用文件夹添加到通常在/ public文件夹中找到的index.php文件中,可以正确绑定公用文件夹

// set the public path to this directory
$app->bind('path.public', function() {
    return __DIR__;
});
  

您可能要在此之后清除缓存,因为之前可能已缓存路径。如果您没有对bootstrap/cache/config.php上的服务器的ssh访问,则可以手动找到并删除缓存的配置。