试图从 url Laravel 中删除 public

Posted

技术标签:

【中文标题】试图从 url Laravel 中删除 public【英文标题】:Trying to remove public from url Laravel 【发布时间】:2016-03-06 15:19:48 【问题描述】:

我的 .htaccess 文件中有这段代码:

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

但正如您在下面的屏幕截图中看到的那样,它不起作用:

截图链接:http://i.imgur.com/n8AYlcX.png

但是,如果我将 .htaccess 文件更改为:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^ index.php [L]

然后我可以在我的浏览器上看到这个:

截图链接:http://i.imgur.com/yjhTEx0.png

这是我的文件夹结构的样子:

截图链接:http://i.imgur.com/t91w2OH.png

我尝试了什么?

我已经在 XAMPP 中启用了我的mod_rewrite 来尝试修复我的解决方案。我在下面的链接中遵循了这些步骤:

链接:http://www.leonardaustin.com/blog/technical/enable-mod_rewrite-in-xampp/

【问题讨论】:

只是出于好奇,这是哪个编辑器? i.imgur.com/t91w2OH.png 带有 Seti UI 主题的 Sublime text 3。 哦,好的。我还以为是VS Code 【参考方案1】:

您需要做的就是将 Apache 中站点配置的主目录指向 Laravel 安装的 public 文件夹。 目前,它似乎指向其根文件夹。

【讨论】:

任何其他解决方案都是废话 我不太明白你的意思。你的意思是在我的主机文件中是这样的?:127.0.0.1 localhost/portfolio-zaky-2/public/ 但这对我不起作用。 不,不在您的主机文件中。在本地开发网站的 Apache 配置中。【参考方案2】:

在您的虚拟主机中,您应该将域 documentroot 指向 /public 文件夹。

DocumentRoot "/home/vhostsfolder/laravelproject/public"

而不是

DocumentRoot "/home/vhostsfolder/laravelproject"

您使用的是什么服务器?本地/共享主机/vps?

【讨论】:

以上是关于试图从 url Laravel 中删除 public的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 4 从 URL 中删除公共

从 url laravel 5.4 中删除公共

从 Vue JS + Laravel 中的 URL 中删除哈希

从 URL Laravel 5.3 中删除公共

通过删除 Laravel 中的多余字符,从斜杠分隔的 url 中提取参数值

Laravel 7.x - 如何从 URL 中删除“公共”?