PHP 7的Google Apps Engine现在需要一个“前控制器”。这些是我需要管理的URL:
- /sitemap.xml
- / app / myPHP?param1 = value&param2 = value2
我的源文件夹包含以下文件
- index.php(前端控制器)
- home.php
- gen_sitemap.php
- myPHP.php
所以我将前控制器(index.php)编码为
<?php
switch ($_SERVER['REQUEST_URI']) {
case '/':
require 'home.php';
break;
case '/sitemap.xml':
require 'gen_sitemap.php';
break;
case '/app/myPHP':
require 'myPHP.php';
break;
default:
echo "no page " . time();
break;
}
但是它不能正确解析URL:
https://myProject.appspot.com/-> home.php好
https://myProject.appspot.com/?p=“您好”->没有页面
https://myProject.appspot.com/sitemap.xml-> sitemap.php好的
https://myProject.appspot.com/sitemap.xml?p=“ h”->没有页面
https://myProject.appspot.com/app/myPHP-> myPHP.php好
我该如何修复此前置控制器? 谢谢你,
答案 0 :(得分:0)
切换条件可能无法正常工作,因为它正在比较“ REQUEST_URI”。 PHP的SERVER全局变量键REQUEST_URI可能具有查询字符串的完整路径。而是尝试键“ SCRIPT_NAME”或“ PATH_INFO”
建议:首先检查$ _SERVER变量中所有可用的键值,然后选择用于添加切换命令的键值。
示例:print_r($ _ SERVER);作为代码的第一行
参考:https://www.php.net/manual/en/reserved.variables.server.php