我希望这个问题不是广泛的或主观的,但我所寻找的是在现有网站中实施Laravel框架是否存在(或者是)成熟的方法。
我们目前正在为我们的网站使用自定义CMS,这涵盖了我们95%的需求。但是,我想创建一个子目录,其中所有它的子目录都实现了Laravel。我担心的是,我不完全确定Laravel路由的内部工作原理是什么(我不确定我们的CMS是否也在幕后进行自己的路由),所以我不希望有我们的CMS的矛盾的URI问题踩到Laravel的脚趾,反之亦然。
我只是略微熟悉.htaccess规则,但是那个(Laravel子目录中单独的.htaccess)是从该文件夹开始实现Laravel路由的关键,而不是任何其他规则网站上的网页?如果我们的CMS确实有自己的路由,那么较低级别的.htaccess是否会覆盖更高级别的路由?
这是否会对开发后期可能出现的问题引发任何危险信号?
答案 0 :(得分:1)
我认为路由不会成为问题(Laravel通常在路由视角的子目录中运行良好)。如果您使用Laravel的URL帮助程序,那么一切都很好。
Laravel在子目录中的更严重问题是安全性。为了避免每个人都可以访问整个框架代码,您需要将public
目录和框架的其余部分分开。
我建议这个结构:
- laravel_app
--- app
--- bootstrap
--- vendor
--- ...
- document_root
--- your cms stuff
--- laravel (laravel "public" directory renamed to whatever url you want it under)
------ index.php
------ .htaccess
------ assets
要完成这项工作,您必须编辑两个文件:
public/index.php
(现在document_root/laravel/index.php
)require __DIR__.'/../../laravel_app/bootstrap/autoload.php';
$app = require_once __DIR__.'/../../laravel_app/bootstrap/start.php';
$app->run();
app/bootstrap/paths.php
(现在laravel_app/app/bootstrap/paths.php
)// ...
'public' => __DIR__.'/../../document_root/laravel',
// ...