Implantei meu site no Google App Engine, que funciona bem, a menos que eu tente abrir um subdiretório do site. Por exemplo, abrir example.com/dir causará um erro 404, mesmo se eu tiver o diretório carregado/implantado. Meu app.yaml é o seguinte:
runtime: php72
handlers:
- url: /
static_files: public/index.html
upload: public/index.html
- url: /
static_dir: public
# Serve images as static resources.
- url: /(.+\.(gif|png|jpg))$
static_files: \1
upload: .+\.(gif|png|jpg)$
application_readable: true
# Serve php scripts.
- url: /(.+\.php)$
script: \1
Deixe-me saber se você precisar de qualquer outro detalhe sobre isso.
Responder1
Não sei se foi um erro de copiar e colar ao adicionar código ao serverfault, mas o recuo em seu YAML não está correto, o que pode causar esse erro. Deveria ser:
runtime: php72
handlers:
- url: /
static_files: public/index.html
upload: public/index.html
- url: /
static_dir: public
# Serve images as static resources.
- url: /(.+\.(gif|png|jpg))$
static_files: \1
upload: .+\.(gif|png|jpg)$
application_readable: true
# Serve php scripts.
- url: /(.+\.php)$
script: \1
Responder2
O único valor aceito para o parâmetro "script" no tempo de execução do PHPv7.2 para o ambiente padrão do App Engine é "auto", conforme descrito aqui [1]. Sugere-se usar um framework web (como Laravel, Symfony ou similar) com roteamento no aplicativo para executar um script quando uma solicitação atinge uma rota específica.
[1]https://cloud.google.com/appengine/docs/standard/php7/php-differences#migrating_your_appyaml_file
Lembre-se de que se você estiver usando o PHP 7.2 e o ambiente padrão do App Engine, esse tempo de execução está na versão Beta e esse recurso pode ser alterado de maneiras incompatíveis com versões anteriores e não está sujeito a nenhum SLA ou política de suspensão de uso.
Por favor, tente isso e me conte os resultados.
[1]https://cloud.google.com/appengine/docs/standard/php7/config/appref