首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel 5.4从url中移除public :副作用

Laravel 5.4是一种流行的PHP开发框架,用于构建Web应用程序。在默认情况下,Laravel 5.4的URL中包含了一个public目录,例如:http://example.com/public/index.php。然而,这种URL结构可能不够美观,并且可能暴露一些敏感信息。因此,有时候我们希望从URL中移除public目录。

移除public目录的副作用是需要进行一些配置和调整,以确保应用程序能够正常工作。下面是一些可能需要注意的副作用:

  1. 服务器配置:您需要确保服务器的根目录指向Laravel项目的public目录。这可以通过修改虚拟主机配置文件或服务器配置文件来实现。
  2. .htaccess文件:您需要在Laravel项目的根目录下创建一个名为.htaccess的文件,并添加适当的重写规则,以确保URL重写到public目录之外的正确位置。以下是一个示例.htaccess文件的内容:
代码语言:txt
复制
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
  1. 资源路径:当您从URL中移除public目录后,您需要相应地调整应用程序中的资源路径。例如,您可能需要更新CSS和JavaScript文件的引用路径。
  2. 缓存清除:如果您之前使用过Laravel的缓存功能,您可能需要清除缓存以确保应用程序能够正确加载。

总结起来,从Laravel 5.4的URL中移除public目录可能会带来一些配置和调整的副作用。但通过正确配置服务器、添加适当的.htaccess文件、调整资源路径和清除缓存,您可以确保应用程序能够正常工作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Laravel 5.4 及 5.5 的全新字符串辅助方法

str_start() 方法 str_start() 辅助方法是由 Caleb Porzio 在 Laravel 5.4 分支贡献的。这个方法用于确定字符串的开头有且仅有一个特定的字符。...比如我们在进行 URL 或者 Path 的拼接时,如何确保只含一个路径分隔符"/"呢? 以往可能是这样做的: $path = rtrim(BASE_DIR, "/") . "/" ....ltrim($filepath, "/"); 用 rtrim 移除 BASE_DIR 末尾可能包括的 "/",再用 ltrim 移除 $filepath 开头可能包括的 "/"....举个栗子,你要获取 Email 地址的用户名部分: echo str_before('kairee@ofcss.tld', '@'); // 输出:kairee 这个方法会随 Laravel 5.5...了解全部辅助方法 Laravel 提供了大量有关字符串、数组、URL的辅助方法。建议开发者可以经常性地查看一下 官方文档的辅助方法部分。相信你经常能够有所收获。

1K70
  • 自动化测试:六个值得参考的 Laravel 开源项目

    我在 GitHub 上找到了相当多的 Laravel 开源项目,里面挑选出了 6 个来查看他们的测试方案。让我们分别看一下。   ...Laravel.io portal   URL: https://github.com/laravelio/...   最近重新启动的 Laravel.io 已经将代码在 GitHub 上开源。...我还注意到 Laravel.io 已经升级到了 Laravel 5.4, 但是测试套件仍然使用的是5.3的风格, 使用 BrowserKitTestCase implementation。...我在这里看到一个有趣的示例 —— 测试调用 Artisan 命令,例如 unit/JoinTest.php: public function testJoinCommand()   {...迁移到较新版本的 Laravel 可能很痛苦 —— 例如,5.3 版本的测试看上去和 5.4 版本不一样。所以你需要提前考虑更新。

    1.9K30

    深入理解 Laravel 管道

    基本上,你可以使用 laravel 管道(pipelines)基于链式操作将对象传入多个类执行任何类型的任务,并在所有「任务」执行完成后一次性返回最终结果。...你可以 Laravel pipelines 获取更多相关知识。 有关管理工作原理的最常见的示例是在框架本身的组件的使用。我这里说的就是「中间件」。...下面是你需要做的事情: 替换文本的 link 标签。 使用「*」替换掉敏感词。 移除文本的 script 标签。 也许最终你会构建相关的类来处理这些「任务」。...但是值得高兴的是在你的知识库在需要的时候已经建立了管道这个新的武器的知识。 我希望这个实例能够让你对「Laravel Pipelines」有更深如的了解,并知道如何使用它们。...你也可以去查看 laravel api 文档,如果你希望了解更多它是如何工作的 https://laravel.com/api/5.4/Illuminate/Pipeline/Pipeline.html

    3.3K20

    PHP之内置web服务器

    前言 PHP5.4开始,就提供了一个内置的web服务器。 这个主要是用来做本地的开发用的。不能用于线上环境。现在我就介绍一下这个工具如何使用。...比如 Laravel 和 Symfony。 LaravelLaravel的安装一节中介绍了一个命令可以使用PHP内置web服务器实现外部访问的命令。...* @author Taylor Otwell */ $uri = urldecode( parse_url($_SERVER['REQUEST_URI...'], PHP_URL_PATH) ); // 这个文件允许我们内置 PHP web 服务器模拟 Apache 的 "mod_rewrite" 功能. // 这提供了一种测试 Laravel 应用程序的便捷方法...总结 通过我们学习 PHP 命令实现web服务器访问以及对 Laravel 和 Symfony 框架的分析, 让我了解到在Windows的开发过程,我们完全可以借助该方式来摆脱对web服务器的依赖.既能方便我们在

    3.1K10

    Laravel源码解析之Request

    很多框架都会将来自客户端的请求抽象成类方便应用程序使用,在Laravel也不例外。...创建Request对象 我们可以在Laravel应用程序的 index.php文件中看到,在Laravel应用程序正式启动完成前Request对象就已经被创建好了: //public/index.php...* 获取请求的URL(包含host, 不包括query string) * * @return string */ public function fullUrl() { $query...总结 随着Request最终到达对应的控制器方法后它的使命基本上也就完成了, 在控制器方法里Request获取输入参数然后执行应用的某一业务逻辑获得结果,结果会被转化成Response响应对象返回给发起请求的客户端...这篇文章主要梳理了LaravelRequest对象,主要是想让大家知道如何去查找LaravelRequest现有提供了哪些能力供我们使用避免我们在业务代码里重新造轮子去实现Request已经提供的方法

    2.4K20

    PHP之内置web服务器

    前言 PHP5.4开始,就提供了一个内置的web服务器。 这个主要是用来做本地的开发用的。不能用于线上环境。现在我就介绍一下这个工具如何使用。...比如 Laravel 和 Symfony。 LaravelLaravel的安装一节中介绍了一个命令可以使用PHP内置web服务器实现外部访问的命令。...* @author Taylor Otwell */ $uri = urldecode( parse_url($_SERVER['REQUEST_URI...'], PHP_URL_PATH) ); // 这个文件允许我们内置 PHP web 服务器模拟 Apache 的 "mod_rewrite" 功能. // 这提供了一种测试 Laravel 应用程序的便捷方法...总结 通过我们学习 PHP 命令实现web服务器访问以及对 Laravel 和 Symfony 框架的分析, 让我了解到在Windows的开发过程,我们完全可以借助该方式来摆脱对web服务器的依赖.既能方便我们在

    3.7K30

    Laravel框架关键技术解析

    控制反转是将组件间的依赖关系程序内部提到外部容器来管理,而依赖注入是指组件依赖通过外部以参数或其他形式注入,两种说法本质上是一个意思 5.Laravel:Illuminate\Container\Container...bootstrap()-->>调用服务容器的registerConfiguredProviders(),配置文件中提取所有的服务提供者 3.缓载服务提供者:对于不是每个请求都需要使用的服务只有在需要时才临时进行服务绑定...需要将$defer属性设置为true,同时定义一个provides方法,用于返回服务提供者绑定服务的名称 https://github.com/zhangyue0503/laravel5.4cn 九、请求与响应的操作.../laravel5.4cn 十、数据库及操作 A.数据库迁移与填充 1.Laravel的数据库迁移其实是定义了一个统一的接口来实现数据库架构的创建和维护,而这种统一的接口与底层的数据库及其操作语言都是无关的...https://github.com/zhangyue0503/laravel5.4cn 十三、消息队列 1.消息队列可以解决大并发和多种语言通信接口等问题 2.实时socket连接和推送问题node.js

    11.9K20

    Laravel5.4 队列简单配置与使用

    举几个生活例子: * iphone手机新款发布,三里屯iphone进的新货。大家要排队买,不能说一大堆人一起冲进去,那么这店就完了。 * 你有一大堆女朋友。...Laravel5.4版本中直接提供了全局函数 dispatch(),你可以再任意地方调用。并且无需加载任何对象或者实例化类。...这个函数主要的用途就是将你的队列需求加入到指定的容器(专业点的叫生产者,其实你大可理解为你在商城购物完排队结账的时候) 设置驱动 Laravel神奇数据库迁移我就不多说了。我相信你知道。...php artisan queue:work 基本就下面这个样 到此Laravel5.4 队列简单配置与使用就结束了。...更多专业吊炸天的教程请参考China Laravel http://d.laravel-china.org/docs/5.4/queues 最后修改:1年前 2017-08-10 © 著作权归作者所有

    1.5K10

    laravel 学习之路 配置config

    前面文章路由与控制器我们都了解了,现在了解一下laravel的config配置 配置项 laravel 的配置项是在根目录下的 /config 目录,还有一个是根目录下的 .env文件 ?...'name' => env('APP_NAME', 'Laravel') 到这里这句代码的意思就很明显了, .env 获取 APP_NAME 的值,如果 .env 不存在 APP_NAME 那就取默认值...Laravel 在 config/database.php 文件我们可看到数据库的配置 ?.../config 目录下的数据库的配置 laravel 5.4 以后默认使用 utf8mb4 字符集,utf8mb4 主要是用来支持 emoji 表情的,如果你的本地环境的mysql 低于5.7.7,为了防止在以后使用的过程中报如下错误...先 use Schema use Illuminate\Support\Facades\Schema; 在 boot 添加如下代码 public function boot() { Schema

    2.1K10

    laravel5.5功能尝鲜

    1 启动项目 第一步 下载源码 执行命令前确保已经安装了composer 和 php7 laravel new laravel55 --dev 如果laravel 命令报错,请参考 http://blog.csdn.net...4 Package Auto Discovery功能 可以自动下载包相关的文件,免去了手工下载配置的麻烦 使用方式:在composer.json增加子节点extra 节点中的内容为一个下载的示例 "...10 Markdown 邮件渲染 邮件的 Markdown 写法其实在 Laravel 5.4 的时候就已经支持了,但是对于邮件测试来说,这样的渲染结果其实不是很方便,所以在 Laravel 5.5 的时候...@component('mail::button', ['url' => '']) Button Text @endcomponent Thanks, {{ config('app.name'...版本,我们自己创建 Artisan 命令的时候需要到 Kernel 文件中注册命令才可以生效,而在 5.5 的时候,Laravel 通过 load 的方法实现,直接就在生成命令之后可以使用命令了,免去了注册这一步

    3K40

    浅谈laravel数据库查询返回的数据形式

    版本:laravel5.4+ 问题描述:laravel数据库查询返回的数据不是单纯的数组形式,而是数组与类似stdClass Object这种对象的结合体,即使在查询构造器调用了toArray(),也无法转换成单纯的数组形式...(以上图片来源于laravel学院5.3版本到5.4版本的升级手册) 如上图所示:Laravel不再支持在配置文件定制PDO的“fetch mode”,取而代之,总是使用PDO::FETCH_OBJ,...$event- statement- setFetchMode(\PDO::FETCH_ASSOC); //这里我们使用PDO::FETCH_ASSOC }); 这样我们就大功告成啦,现在你的laravel...  *   * @return void   */   public function boot()   {     parent::boot();     //     Event::listen..., function ($event) {       $event- statement- setFetchMode(\PDO::FETCH_ASSOC);     });   } } 以上这篇浅谈laravel

    2.2K31

    Laravel 5 系列入门教程(一)【最适合中国人的 Laravel 教程】

    软件版本:PHP 5.4+,MySQL 5.1+ 本文不推荐完全不懂 PHP 与 MVC 编程的人学习。本文不是 “一步一步跟我做” 教程。...本系列教程为入门教程,目的是搞清楚 Laravel 的基本使用方法,切忌本末倒置。 然后将网站根目录配置为 learnlaravel5/public。 如果你不会配置,建议去学会配置,网上资料很多。...如果自暴自弃,可以把 的第 29 行 'url' => 'http://localhost', 配置成你的子目录地址,注意,要一直配置到 ***/learnlaravel5/public。...Model 即为 MVC 的 M,翻译为 模型,负责跟数据库交互。在 Eloquent ,数据库每一张表对应着一个 Model 类(当然也可以对应多个)。...如果你其他框架转过来,可能对这里一笔带过的 Model 部分很不适应,没办法,是因为 Eloquent 实在太强大了啦,真的没什么好做的,继承一下 Eloquent 类就能实现很多很多功能了。

    3.4K20
    领券