I left app.yaml as it was...
- url: /(.+)
script: index.php
secure: always
- url: /.*
script: index.php
secure: always
...and used PHP to read from the URL.
$directory = basename(parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH));
if ($directory !== "" && $directory !== "index.php") {
$action = $directory;
}
elseif (isset($_REQUEST["action"])) {
$action = $_REQUEST["action"];
}
else {
$action = "(unspecified)";
}
This facilitates script.js utilizing the less attractive form for passing one or more parameters, while site visitors can simply use slash plus text to indicate a single action or request.
Credit to sanjary's answer to another question for reading the URL after the slash.