从Laravel生态系统中删除PHP脚本

时间:2018-11-20 07:28:16

标签: php laravel

我需要在域目录中放置一个简单的php脚本,该脚本必须与其他laravel应用程序隔离运行。

例如,如果我的Laravel应用在www.example.com上运行。 如果我打电话给www.example.com/do_something_here/ 而这个do_something_here是我的项目的子文件夹,不会受到Laravel路线规则的响应。

有可能吗?

4 个答案:

答案 0 :(得分:1)

您可以做到。无论您的网站收到什么请求,它都会命中您的index.php。出现在public/目录中,然后进行路由,类加载过程。

您可能想在应用程序自举发生之前,在index.php的{​​{1}}处添加一些规则(可以在<?php行之后编写。),方法是检查请求URL({{1 }})并执行特定脚本并返回。

另一种方法是在$_REQUEST文件中添加规则(如果已启用)。一个快速的谷歌会找到你的方式

答案 1 :(得分:1)

根据您的情况,如果您的文件夹位于公共目录中(文件夹名称应为:do_something_here)

更改您的.htaccess文件以获得访问该文件夹的权限。 这样用户可以直接查看您的文件夹

示例:

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

答案 2 :(得分:0)

您可以仅将文件夹do_something_here/添加到Laravel的public/文件夹中。放置在do_something_here/中的任何脚本都可以被调用。

答案 3 :(得分:0)

我处理此问题的方法是使用路由,捕获其他所有页面。

路线

Route::get('functionName/{slugFolderName}/{slugFileName}', [
'uses' => 'PageController@getPage' 

])-> where('slug','([[A-Za-z0-9-/] +)');

This will match slugs like
test-page/sub-page
another-page/sub-page

控制器

public function getPage($slugFolderName,$slugFileName){
    return view($slugFolderName.$slugFileName);
}

希望这种结构对您有帮助