【问题标题】:Why am I getting this laravel url routing error in .htaccess?为什么我在 .htaccess 中收到这个 laravel url 路由错误?
【发布时间】:2019-10-04 06:25:10
【问题描述】:

我最近将 Laravel 安装到我的 public_html 文件夹中。我想要它,所以当我登录 www.malhub.com 时,它会获取公共文件夹 (public_html/public).

的内容

经过反复试验,我能够让它在一定程度上发挥作用。现在我有一个 404 错误,这是因为网站 (www.malhub.com) 解析为:

http://malhub.com/public/public_html

但我的 .htaccess 代码指出:

RewriteRule ^(.*)$ public_html/public/$1 [L]

换句话说,它在公用文件夹中寻找一个public_html文件夹(应该只是公用文件夹)

我添加了一些文件夹(测试)只是为了理解它是如何工作的,我很困惑。它正在进入公用文件夹并寻找另一个文件夹。

当我尝试写作时:

RewriteRule ^(.*)$ public/$1 [L]

或“public_html”或 /../../ 的任何组合我不断收到 500 个错误(不显示 url)。

这行代码是如何工作的,最佳方式是什么?

【问题讨论】:

  • 您的应用程序正在malhub.com/public中运行
  • 默认情况下,您的应用程序索引页面将从公共文件夹加载..因此 url 将是 malhub.com/public
  • @RashedHasan 我明白了,如何获得它以缩短 URL?我希望 malhub.com 解析为 malhub.com/public(不输入“public”)。我想我可以在我的域设置中更改它,但是通过 .htacess 有没有更简单的方法?谢谢。
  • @jitheshjose 我明白了,我的问题是如何更改它,以便当有人键入“malhub.com”时它会解析为 /public 目录?
  • 试试答案...

标签: php laravel apache


【解决方案1】:

默认情况下,网站将从公共文件夹加载。 如果您想从您的 url 中删除 public,请将 .htaccess 文件从 public 文件夹复制到 root 并用以下代码替换代码..

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On


RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]

RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1 

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php

【讨论】:

  • 谢谢,这是我的下一个问题,您可以忽略其他回复,我注意到您的回答是正确的。
  • 只是一个小调整,我将“server.php”更改为“index.php”(我没有 server.php)。好吧,现在我已经准备好开始开发了!
【解决方案2】:

如果您不想从public 文件夹中删除所有文件和文件夹,则只需将.htaccess 复制到您的根目录并将server.php 重命名为index.php,最后一步是如果所有资源文件在 /public 目录中找不到并且请求 URL 不适用于使用 asset() 帮助程序。然后,您需要将public 添加到您的helpers.php 文件中。

function asset($path, $secure = null)
{
    return app('url')->asset($path, $secure);
}

到

function asset($path, $secure = null)
{
    return app('url')->asset("public/".$path, $secure);
}

你会在vendor/laravel/framework/src/Illuminate/Foundation/helpers.php中罚款helpers.php。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    相关资源
    最近更新 更多