如何从 laravel 5 中的 url 中删除 public/index.php?
Posted
技术标签:
【中文标题】如何从 laravel 5 中的 url 中删除 public/index.php?【英文标题】:How to remove public/index.php from url in laravel 5? 【发布时间】:2015-10-11 20:36:20 【问题描述】:我正在使用 laravel 5,当我在 rackspace 上上传我的项目时遇到一个问题,它在 url 中显示 public/index.php。没有这个,我的项目将无法运行。
请帮帮我。
我的公众活动是这样的:-
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
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]
</IfModule>
关于 哈帕塔辛格
【问题讨论】:
Laravel 5 - Remove public from URL 的可能重复项 【参考方案1】:您可以通过将 /path/to/laravel/public
文件夹本身设置为 Apache/nginx 中的 webroot 而不是 /path/to/laravel
来做到这一点。有了它,以及公共文件夹中的标准.htaccess
,您应该能够在没有public
或index.php
URL 段的情况下访问您的路由。
【讨论】:
Rackspace 不允许我的域直接重定向到公用文件夹。 你能通过 SSH 连接到服务器并简单地符号链接httpdocs -> public
吗?即ln -s public httpdocs
。假设您的项目不在文档根目录中(我认为这是 Alan 的意思)。【参考方案2】:
从您的公共文件夹中复制您的.htaccess
文件并粘贴到您的根目录中
这段代码在.htaccess
:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^ index.php [L]
【讨论】:
以上是关于如何从 laravel 5 中的 url 中删除 public/index.php?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 laravel 5.2 中从 url 中删除 public
Laravel 7.x - 如何从 URL 中删除“公共”?