重定向到 Lumen (Laravel) 上的公用文件夹

Posted

技术标签:

【中文标题】重定向到 Lumen (Laravel) 上的公用文件夹【英文标题】:Redirect to public folder on Lumen (Laravel) 【发布时间】:2015-08-24 17:48:45 【问题描述】:

我有一个大问题。我使用 Lumen 框架在 localhost 中处理应用程序。 我的工作环境是在 Wamp (Windows) 上。

Lumen 要求根目录位于 public 文件夹中。

为此,我有一个这样的配置文件:

NameVirtualHost name.local
<VirtualHost name.local>    
  DocumentRoot C:/wamp/www/name/public
  ServerName name.local  
</VirtualHost>

所以,如果我在浏览器中输入地址name.local/,就可以访问索引页面。

现在,我需要将所有工作都放在 FTP 中。在那里,我有一个异常错误,这是正常的,因为我的根不是public 文件夹。

更新:我找到了答案,请看下面。

【问题讨论】:

FTP?文件传输协议?或其他一些 TLA(三个字母的首字母缩写词) 是的,使用像filezilla这样的软件 ftp 和 php 无关……这个异常错误到底是什么? @MarcB 抱歉,使用了标签。这个:Sorry, the page you are looking for could not be found. 你的问题不够清楚,请冷静下来,把你的问题详细阐述清楚,打字可能需要几分钟,但一定会给你一个合适的答案 【参考方案1】:

好的,经过几天的搜索,我找到了解决方案。

在应用程序的根目录中添加一个.htaccess 文件并将其添加到此文件中:

RewriteEngine On

RewriteCond %THE_REQUEST /public/([^\s?]*) [NC]
RewriteRule ^ %1 [L,NE,R=302]
RewriteRule ^((?!public/).*)$ public/$1 [L,NC]

假设你没有接触过 Lumen 的原始架构,并且公共数据仍然在同一个地方:public/ 文件夹

编辑:

使用 Lumen 和 Laravel 的最新版本,您可以将其写入 .htaccess 文件:

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

或者按照this tutorial的第二种方法

【讨论】:

很好的解决方案,特别是对于那些强迫您调用文件夹“public_html”的主机。 真的成功了!!!

以上是关于重定向到 Lumen (Laravel) 上的公用文件夹的主要内容,如果未能解决你的问题,请参考以下文章

Lumen + nginx = 错误 500,重写或内部重定向循环,同时内部重定向到“/index.php”

Lumen:刚刚安装了lumen,无法从公用文件夹中获取资源

如何重定向到laravel上的公共文件夹

使用参数流明重定向

Beyondcode\laravel-websockets 它正在重定向到 wss 而不是 localhost 上的 ws

如何在 Laravel 4 中将一个路由重定向到 HTTPS,将所有其他路由重定向到 HTTP?