【问题标题】:Laravel 5 .htaccess url public remove not workingLaravel 5 .htaccess url 公共删除不起作用
【发布时间】:2016-12-02 11:25:43
【问题描述】:

我正在使用具有默认目录结构的 laravel 5。 为了从 url 中删除公用文件夹,我在 .htaccess 中使用以下代码

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

我正在使用 xampp,我的路径是这样的 http://localhost/pro/laravel5/public

所以我的项目在 htdocs/pro/laravel5/ 中,我保留在 .htaccess 之上 否则一切都是默认的

当我尝试访问我的项目时,出现以下错误。

RouteCollection.php 第 145 行中的 NotFoundHttpException:

in RouteCollection.php line 145
at RouteCollection->match(object(Request)) in Router.php line 719
at Router->findRoute(object(Request)) in Router.php line 642
at Router->dispatchToRoute(object(Request)) in Router.php line 618
at Router->dispatch(object(Request)) in Kernel.php line 210
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 141
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in VerifyCsrfToken.php line 43
at VerifyCsrfToken->handle(object(Request), object(Closure)) in VerifyCsrfToken.php line 17
at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in ShareErrorsFromSession.php line 55
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in StartSession.php line 61
at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 36
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in EncryptCookies.php line 40
at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 42
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 101
at Pipeline->then(object(Closure)) in Kernel.php line 111
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 84
at Kernel->handle(object(Request)) in index.php line 53

我该如何解决这个任何建议,我是否遗漏了 .htaccess 中的任何内容让我知道。 而且我不想使用第二个移动文件和文件夹的选项。

【问题讨论】:

    标签: php .htaccess laravel mod-rewrite xampp


    【解决方案1】:

    嘿,您必须以任何方式将 .htaccess 和 index 文件复制到您的根路径,然后在您的 htaccess 文件中使用 public

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

    然后你的 index.php thtz all :)

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

    【讨论】:

    • 嘿移动 .htaccess、index 和 web.config 文件你的项目路径并改变我上面提到的方式我为你尝试了它为我工作
    【解决方案2】:

    你要做的就是

    将 Laravel 项目根文件夹中的 server.php 重命名为 index.php

    将 .htaccess 文件从 /public 目录复制到你的 Laravel 根文件夹。

    现在就是这样,您的项目将像pro/laravel5/一样在您的浏览器中运行

    【讨论】:

    • 使用资产功能尝试此选项 css 路径不正确。
    • css 路径会起作用,你必须正确链接它。将所有资产放在 Public 文件夹中,然后通过 {{asset('yourCss.css')}} 链接它
    • 嘿,Iftikhar uddin,对不起,你投了反对票,但我没有这样做。我只使用资产功能,但它没有采取正确的路径。
    • @user2293790 不,我不是对你说。你能和我们分享一下代码,这样我就可以知道那里出了什么问题?
    • @user2293790 我建议你使用虚拟主机,这是 laravel 的最佳选择。来看看(stackoverflow.com/questions/37879645/…)
    猜你喜欢
    • 2015-04-06
    • 2015-07-17
    • 1970-01-01
    • 2018-04-20
    • 2015-06-09
    • 1970-01-01
    • 2015-06-03
    • 2017-02-27
    相关资源
    最近更新 更多