我需要在域目录中放置一个简单的php脚本,该脚本必须与其他laravel应用程序隔离运行。
例如,如果我的Laravel应用在www.example.com
上运行。
如果我打电话给www.example.com/do_something_here/
而这个do_something_here
是我的项目的子文件夹,不会受到Laravel路线规则的响应。
有可能吗?
答案 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);
}
希望这种结构对您有帮助