【问题标题】:Remove "/public" from Laravel route从 Laravel 路由中删除“/public”
【发布时间】:2015-11-17 17:30:08
【问题描述】:

我的项目 URL 为 -

http://localhost/project-name/user/public/xxx

我想改成-

http://localhost/project-name/user/xxx

我已经尝试了互联网上可用的常用解决方案,但仍然没有运气。这些是经过几个解决方案后的 htaccess 文件。

1.项目名称/.htaccess

选项 - 多视图

RewriteEngine On
# Check what redirect trailing slash does
# Redirect Trailing Slashes...

# Handle Front Controller...
RewriteRule ^(.*)$ public/$1 [L]

2。项目名称/public/.htaccess

选项 - 多视图

RewriteEngine On

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

这个问题的确切解决方案是什么?

【问题讨论】:

  • 你在哪里部署?您是否尝试过创建一个指向您的 public 目录的 VirtualHost?
  • 我没有这样做的权限。我可以只使用 htaccess 来达到同样的效果吗?

标签: apache .htaccess laravel laravel-4


【解决方案1】:

由于您没有权限将虚拟主机指向您的 laravel 公用文件夹,我建议您:

对于 Laravel 5,1) 将 public 文件夹中的所有文件移动到项目根目录,不再需要 public 文件夹 2) 像这样更新原始 index.php:

require __DIR__.'/bootstrap/autoload.php';

$app = require_once __DIR__.'/bootstrap/app.php';

对于 Laravel 4,您还需要在 /bootstrap/paths.php 的数组中编辑“public”的值。

这应该可以实现您想要的。希望这会有所帮助。

话虽如此,尝试将您的应用托管在您可以完全控制一切的 VPS 中:)

【讨论】:

  • bootstrap 中的文件也应该被修复。我找不到前段时间用来部署在共享主机上的博文,但这篇应该澄清一点driesvints.com/blog/laravel-4-on-a-shared-host
  • 这是 Laravel 4 的情况。从 5.0 开始,您不必再修改 bootstrap 文件夹中的文件了。
  • 好吧,我相信有一个laravel-4标签,所以我想作者使用的是版本4:)
猜你喜欢
  • 2014-10-27
  • 2019-04-02
  • 2016-07-30
  • 2018-04-27
  • 1970-01-01
  • 2015-01-14
  • 2020-06-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多