我尝试将nginx配置为动态处理所有/{{app}}/query请求,以访问laravel应用程序,如下所示:
server {
listen 80;
server_name localhost;
root /usr/share/nginx/apps;
location / {
index index.php;
try_files $uri @rewriteapp;
}
location @rewriteapp {
rewrite ^/([^/]+)(.*)$ /$1/public/index.php?$2 last;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
目前,nginx将我的请求路由到正确的目录和文件。例如:
www.domain.com/test/item/1/edit
...路线:
/path/to/my/apps/test/public/index.php?/item/1/edit
我还可以回显var_export($_GET)并查看该查询:
array(
'/item/1/edit' => '',
)
但拉拉维尔·艾尔维斯说:
NotFoundHttpException in RouteCollection.php line 161:
in RouteCollection.php line 161
at RouteCollection->match(object(Request)) in Router.php line 823
at Router->findRoute(object(Request)) in Router.php line 691
at Router->dispatchToRoute(object(Request)) in Router.php line 675
at Router->dispatch(object(Request)) in Kernel.php line 246
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 102
at Pipeline->then(object(Closure)) in Kernel.php line 132
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99
at Kernel->handle(object(Request)) in index.php line 57
但是为什么呢?
路线看起来像这样:
Route::get('/', function () {
return view('welcome');
});
Route::get('/item', function() {
return 'Item';
});
php artisan路由:列表返回:
+--------+----------+---------+------+---------+------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+---------+------+---------+------------+
| | GET|HEAD | / | | Closure | web |
| | GET|HEAD | item | | Closure | web |
+--------+----------+---------+------+---------+------------+
我的Laravel版本是5.2.33我使用Ubuntu 16.04服务器与PHP 7.0.6(PHP-FPM)作为主机。
这是nginx配置问题吗?还是拉威尔的问题?或者它是一个Linux,也许是与权限相关的主题?
经过一些研究和尝试,我找到了以下解决方案:
server {
listen 80;
server_name localhost;
location = / {
# redirect if no app is specified
return 301 http://www.domain.com;
}
location ~* ^/([^/]+)(.*)\.(jpe?g|png|svg|gif|ico|doc|docx|xls|xlsx|pdf|txt)$ {
# handle static files
alias /usr/share/nginx/apps/$1/public$2.$3;
}
location ~* ^/([^/]+)(.*)$ {
# handle laravel requests
root /usr/share/nginx/apps/$1/public;
try_files /index.php =404;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param REQUEST_URI $2;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
}
}
将应用程序根指向公用文件夹,它将正常工作
我使用React js创建了一个站点,并对Nginx进行了一些更改,以将路由重写为文件,这样就不会出现404错误。最近,如果我使用location/{try_files$uri$uri//index.html;}为单页应用程序购买配置Nginx,我尝试使用express on当我尝试访问/api时,我将从我的应用程序中获取notFound页面,如果我不配置它,我可以访问我的express服务器,但
React路由的使用 使用React路由之前,我们需要先安装 react-router-dom这个包。比如: yarn add react-router-dom 代码举例: (1)index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="
为了定义辅助路由,我们必须首先添加一个命名的路由出口,其中要呈现辅助路由的内容。 接下来,我们必须定义到应用程序的辅助路由的链接,以导航和呈现内容。 每个辅助路由是独立的路由,可以拥有: 自己的辅助路由 自己的浏览器历史记录栈
将路由链接到参数 显示特定产品详细信息的组件的路由需要该产品ID的路由参数。我们可以使用以下实现: 注意:product-details路由的路径中的 ,它将参数放在路径中。例如,要查看ID为5的产品的产品详细信息页面,必须使用以下URL:localhost:3000/product-details/5 注意,指令传递一个数组,该数组指定路径和路由参数。或者,我们可以使用JS跳转: Product
问题内容: 我正在使用Express v4.13.4开发Node v4.2.4应用程序。现在,我想增加特定上传路由的超时时间。 根据我的阅读和经验: 默认的节点服务器超时为2分钟 默认情况下,节点套接字没有超时 Express提供了中间件来处理超时 但是,当尝试为上载路由实现连接超时中间件时,我迷路了。 应用设置 上传路线定义 但是,当我上传文件时,仅在命令行控制台上3分钟后我才看到错误。该请求仍
由于在 StackOverflow 上已经有很多关于这个问题的问题,我首先要确保这不是重复和区分。 这是关于 在 2 个不同的身份验证 管理器中具有 2(或更多)不同的身份验证提供程序,以用于不同的路由。 使用 Spring Security 5.5 而不是 3.x 中的方法 使用基于非 XML 配置的方法 所以问题不在于: 如何在身份验证管理器中包含多个身份验证以提供“替代身份验证”(大多数问题