gpt4 book ai didi

php72 动态 url 路由与前端 Controller 通过入口点标准不起作用 Google App Engine [GAE]

转载 作者:行者123 更新时间:2023-12-04 09:04:14 24 4
gpt4 key购买 nike

我的动态 URL 没有在我的 GAE 网站上读取,因为我想使用传入的 GET 来查询我的数据库。
就目前而言,Php72 不允许来自 app.yaml 的路由必须通过入口点来自前端 Controller ,默认值为 publichtml/index.php 或 index.php。
我把我的改成了worker.php。下面的listing.php URL 是动态的,我的意思是listing/random-dynamic-text-here,而index.php 和about.php 是静态页面。
注意:页面 index.php 和 about.php 和 listing.php 被调用并显示在浏览器上,但我无法获取 $_GET["linkcheck"] 的内容;在listing.php中。请参阅下文。
应用程序.yaml

runtime: php72

runtime_config:
document_root:

handlers:

- url: /.*
script: auto
secure: always
redirect_http_response_code: 301

entrypoint:
serve worker.php
//入口点worker.php
<?php 
ini_set('allow_url_fopen',1);
switch (@parse_url($_SERVER['REQUEST_URI'])['path']){
case '/':
require 'index.php';
break;
case '/index':
require 'index.php';
break;
case '/index.php':
require 'index.php';
break;
case '/about':
require 'about.php';
break;
case '/about.php':
require 'about.php';
break;
case '/listing':
require 'listing.php';
break;
case '/listing.php':
require 'listing.php';
break;
case '/listing/':
require 'listing.php/';
break;
case '/listing.php/':
require 'listing.php/';
break;
default:
http_response_code(404);
header("Location: https://www.example.com/404");
exit();
}
?>
索引.php
<html>
<head>
<title>Home</title>
</head>
<body>
<h1>Home</h1>
</body>
</html>
关于.php
<html>
<head>
<title>About</title>
</head>
<body>
<h1>About</h1>
</body>
</html>
下面的listing.php 是我期望的文件/页面 $_GET["linkcheck"];
list .php
<html>
<head>
<title>Listing</title>
</head>
<body>
<h1><?php $cool = $_GET["linkcheck"]; echo $cool; ?></h1>
</body>
</html>

最佳答案

为此,您需要修改两个文件:
worker.php


<?php
ini_set('allow_url_fopen',1);
$path = @parse_url($_SERVER['REQUEST_URI'])['path'];
switch ($path){
case '/':
require 'index.php';
break;
case '/index':
require 'index.php';
break;
case '/index.php':
require 'index.php';
break;
case '/about':
require 'about.php';
break;
case '/about.php':
require 'about.php';
break;
case '/listing':
require 'listing.php';
break;
case '/listing.php':
require 'listing.php';
break;
case '/listing/':
require 'listing.php';
break;
case (preg_match('/listing.*/', $path) ? true : false) :
require 'listing.php';
break;
default:
http_response_code(404);
header("Location: https://www.example.com/404");
exit();
}
?>
这里的区别在于匹配以 /listing 开头的正则表达式并将其发送到列表脚本。
第二个修改是在列表中有这一行: <h1><?php $cool = $_GET["linkcheck"]; echo $cool; ?></h1>换成这个: <h1><?php $cool = $_SERVER['REQUEST_URI']; echo $cool; ?></h1>我测试了它,它现在可以正常工作了。

关于php72 动态 url 路由与前端 Controller 通过入口点标准不起作用 Google App Engine [GAE],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63491001/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com