php - PHP路由器和nginx配置
问题描述
我做了一个没有框架的php网站,我使用了https://grafikart.fr/tutoriels/router-628的路由器!使用 Apache 和 .htaccess 一切正常++,但不幸的是我必须使用 nginx!
我的 index.php 是:
<?php
if ($_COOKIE['lang'] == 'fr')
include './src/lang/fr.php';
else
include './src/lang/en.php';
require './vendor/autoload.php';
$router = new App\Router\Router($_GET['url']);
include './src/views/layouts/header.php';
$router->get('/', "Home#show");
$router->get('/mention', "Mention#show");
$router->get('/office/:id', "Offices#show");
$router->get('/meeting/:id', "Meetings#show");
$router->post('/contact', "Contact#send");
include './src/views/layouts/footer.php';
$router->run();
当调用路由时,我的控制器如下所示:
<?php
namespace App\Controller;
class HomeController
{
public function show()
{
include './src/views/home/index.php';
}
}
对于我的 nginx 配置,我必须将所有 URL 重定向到我的 index.php !我发现 :
location / {
try_files $uri $uri/ /index.php?$query_string;
}
或者:
location / {
try_files $uri $uri/ /index.php?$args; #if doesn't exist, send it to index.php
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_intercept_errors on;
# By all means use a different server for the fcgi processes if you need to
fastcgi_pass 127.0.0.1:<PORT>;
}
但我所有的研究都失败了:(
有人知道我必须为我的路由器工作做的配置
感谢 :)
解决方案
推荐阅读
- android - 声明多个域时的Android applink消歧对话框
- c++ - 有哪些命名空间以及规则是什么?
- haskell - Haskell 是否有一个热切的 `foldr` 版本?
- sql - 在 Redshift 中对备用记录进行分组
- ruby-on-rails - 我希望从 read_replica DB 执行 Rails Admin Search
- css - 响应式 SVG 文本路径包装动态内容
- docker - 为什么我不能使用访问 Pod 资源和 GET 动词的服务帐户执行 `kubectl get pods --as=api-test -n default`?
- c# - 通过 msbuild 参数在 AssemblyInfo.cs 中设置 AssemblyInformationalVersion
- scala - 展平并从 Spark 中的 Struct 类型数据框列中读取值
- unreal-engine4 - 为世界生成放置演员时,我的虚幻引擎滞后