从 url laravel 5.4 中删除公共

Posted

技术标签:

【中文标题】从 url laravel 5.4 中删除公共【英文标题】:Remove public from url laravel 5.4 【发布时间】:2019-03-30 22:30:02 【问题描述】:

我正在开发 laravel 5.4 项目并想从 url 中删除 public。现在我的 url 是 localhost/project_name/public/login。 请建议我从 url 中删除 public。

【问题讨论】:

【参考方案1】:

第 1 步:重命名文件

第一步非常简单,您只需重命名文件名。您必须在 laravel 根目录中将 server.php 重命名为 index.php。

server.php

INTO

index.php

第 2 步:更新 .htaccess

首先你必须复制 .htaccess 文件并将其放在 laravel 根文件夹中。您只需从公用文件夹中复制 .htaccess 文件,然后更新以下代码:

.htaccess

Options -MultiViews -Indexes



RewriteEngine On



# Handle Authorization Header

RewriteCond %HTTP:Authorization .

RewriteRule .* - [E=HTTP_AUTHORIZATION:%HTTP:Authorization]



# Redirect Trailing Slashes If Not A Folder...

RewriteCond %REQUEST_FILENAME !-d

RewriteCond %REQUEST_URI (.+)/$

RewriteRule ^ %1 [L,R=301]



# Handle Front Controller...

RewriteCond %REQUEST_URI !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC]

RewriteCond %REQUEST_FILENAME !-d

RewriteCond %REQUEST_FILENAME !-f

RewriteRule ^ index.php [L]



RewriteCond %REQUEST_FILENAME !-d

RewriteCond %REQUEST_FILENAME !-f

RewriteCond %REQUEST_URI !^/public/

RewriteRule ^(css|js|images)/(.*)$ public/$1/$2 [L,NC]

文档:https://hdtuto.com/article/laravel-remove-public-from-url-using-htaccess

【讨论】:

我的声望少于 15 个,已投票但未公开。谢谢 非常感谢...我已经修补了大约 8 个小时,遵循不同的 tuts。您的解决方案是第一个,完全按我的意愿工作!【参考方案2】:

在您的根目录中创建一个新的 .htaccess 文件并粘贴以下代码。

选项 - 多视图

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

最佳解决方案之一

【讨论】:

以上是关于从 url laravel 5.4 中删除公共的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 4 从 URL 中删除公共

从 URL Laravel 5.3 中删除公共

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

Laravel 5.4 从相关表中删除表行和行

laravel 5.4 删除引入layer文件的写法

Laravel 5.4 从请求对象重定向获取方法