Implementé mi sitio web en el motor de aplicaciones de Google, que funciona bien a menos que intente abrir un subdirectorio del sitio web. Por ejemplo, abrir example.com/dir dará un error 404 incluso si tengo el directorio cargado/implementado. Mi app.yaml es el siguiente:
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
Déjame saber si necesitas algún otro detalle al respecto.
Respuesta1
No sé si se trató de un error de copiar y pegar al agregar código a serverfault, pero la sangría en su YAML no es correcta, lo que podría causar este error. Debería 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
Respuesta2
El único valor aceptado para el parámetro "script" en el tiempo de ejecución PHPv7.2 para el entorno estándar de App Engine es "auto", como se describe aquí [1]. Se sugiere utilizar un marco web (como Laravel, Symfony o similar) con enrutamiento en la aplicación para ejecutar un script cuando una solicitud llega a una ruta específica.
[1]https://cloud.google.com/appengine/docs/standard/php7/php-differences#migrate_your_appyaml_file
Recuerde que si está utilizando PHP 7.2 y el entorno estándar de App Engine, este tiempo de ejecución está en versión Beta y esta característica podría cambiarse de manera incompatible con versiones anteriores y no está sujeta a ningún SLA ni política de obsolescencia.
Por favor, prueba esto y cuéntame los resultados.
[1]https://cloud.google.com/appengine/docs/standard/php7/config/appref