Я развернул свой веб-сайт на движке приложений Google, который работает нормально, если я не попытаюсь открыть подкаталог веб-сайта. Например, открытие example.com/dir выдаст ошибку 404, даже если у меня есть загруженный / развернутый каталог. Мой app.yaml выглядит следующим образом:
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
Дайте мне знать, если вам понадобятся другие подробности об этом.
Единственное допустимое значение параметра «script» в среде выполнения PHPv7.2 для стандартной среды App Engine - «auto», как описано здесь [1]. Предлагается использовать веб-фреймворк (например, Laravel, Symfony или аналогичный) с маршрутизацией внутри приложения для выполнения сценария, когда запрос попадает в определенный маршрут.
[1] https://cloud.google.com/appengine/docs/standard/php7/php-differences#migrating_your_appyaml_file
Помните, что если вы используете PHP 7.2 и стандартную среду App Engine, эта среда выполнения находится в бета-версии, и эта функция может быть изменена обратно несовместимыми способами и не регулируется никакими соглашениями об уровне обслуживания или политикой устаревания.
Пожалуйста, попробуйте это и дайте мне знать результаты.
[1] https://cloud.google.com/appengine/docs/standard/php7/config/appref
Я не знаю, была ли это ошибка копирования-вставки при добавлении кода в serverfault, но отступ в вашем YAML неправильный, что может вызвать эту ошибку. Так должно быть:
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