Назад | Перейти на главную страницу

Ошибка 404 для страниц подкаталога

Я развернул свой веб-сайт на движке приложений 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