Laravel 5.4 artisan 为 /public 的现有文件夹提供 htaccess / 和 Routes::get
Posted
技术标签:
【中文标题】Laravel 5.4 artisan 为 /public 的现有文件夹提供 htaccess / 和 Routes::get【英文标题】:Laravel 5.4 artisan serve htaccess / and Routes::get for existing folders at /public 【发布时间】:2017-11-09 23:11:17 【问题描述】:我仍在尝试使用 Laravel 5.4。 但是正在运行
php artisan server
没有考虑 /public 中的 .htaccess 文件,无论我在那里编辑什么,它仍然没有处理它,工匠服务在 127.0.0.1:8000 运行
--- 我遇到了这个问题,因为我正在寻找另一件事:
我想为已经位于 /public 的 /images 文件夹创建一个 route::get,从 htaccess 条件中删除 -d 应该可以正常解决这个问题,从而使 apache 重定向请求甚至从文件夹到 index.php,
所以在使用 php artisan serve 进行本地测试时,我注意到更改甚至清除 htaccess 文件并不会改变 laravel 的行为。
感谢您的宝贵时间。
[注] 如果我从 apache 运行 laravel,或者除了 php artisan serve 之外的任何东西,htaccess 就可以工作。所以我的问题只是关于 serve 命令及其行为。
【问题讨论】:
【参考方案1】:PHP 具有基本的 Web 服务器功能。当您运行php artisan serve
时使用此服务器功能。 .htaccess
是 Apache 服务器功能不是 PHP 功能。
PHP 不是为了成为一个成熟的 Web 服务器而构建的,因此它没有您在 Apache 或 nginx 上可以找到的所有配置选项
【讨论】:
所以基本上那里没有 htaccess 规则或改变访问服务器上现有文件夹的行为的方法,例如 /css /js /images... 在 /public 文件夹中?跨度> @emad 基本上什么php artisan serve
基本上就是这个命令php -S localhost:8000 -t public/
。 -S
告诉它要使用的主机名和端口,-t
是文档根目录。如果您请求一个存在的文件的 url,您将获得该文件。如果你请求一个不存在的文件的 url,php 会将请求重定向到该目录中的 index.php 文件【参考方案2】:
您需要在 artisan 配置文件中定义它!
sites:
- map: homestead.app
to: /home/vagrant/Code/Laravel/public
正如https://laravel.com/docs/5.4/homestead 中解释的那样(宅基地是 vagrant+)
Laravel Homestead 是官方预包装的 Vagrant 盒子, 无需您即可为您提供美妙的开发环境 在您的计算机上安装 PHP、Web 服务器和任何其他服务器软件 本地机器。再也不用担心搞砸你的操作了 系统!流浪者盒子是完全一次性的。如果有事 错了,你可以在几分钟内销毁并重新创建盒子!
【讨论】:
谢谢,但是 laravel 可以很好地与服务一起工作,(我在 windows + phpstorm 上运行,而不是虚拟盒子),我的问题是关于工匠服务的行为,因为我不打算一直通过 wamp 运行它,出于性能原因,我更喜欢 serve 命令,但是 /public 的 htaccess 文件似乎被 serve 命令忽略了。 嗨,我想澄清一下:1)答案是关于 vagrant 2)PHPStorm 正在使用 virtualbox,因为 PHPStorm 本身不是虚拟机软件 3)因此,PHPStorm 仍然需要正确的设置 vagrant配置文件。以上是关于Laravel 5.4 artisan 为 /public 的现有文件夹提供 htaccess / 和 Routes::get的主要内容,如果未能解决你的问题,请参考以下文章
php artisan migrate 不适用于 Laravel 5.4 中的 XAMPP
Laravel 5.4 - php artisan cache:使用'file'缓存驱动程序时clear不清除缓存文件
laravel 5.4 php artisan serve 无效请求(意外的 EOF)