子目錄頁 404 錯誤

子目錄頁 404 錯誤

我在谷歌應用程式引擎上部署了我的網站,除非我嘗試打開該網站的子目錄,否則它工作正常。例如,即使我已上傳/部署目錄,開啟 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

如果您需要任何其他詳細信息,請告訴我。

答案1

我不知道這是否是向 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

答案2

App Engine 標準環境的 PHPv7.2 運行時中“script”參數的唯一接受值是“auto”,如這裡所述 [1]。建議使用具有應用程式內路由的 Web 框架(例如 Laravel、Symfony 或類似框架)在請求到達特定路由時執行腳本。

[1]https://cloud.google.com/appengine/docs/standard/php7/php-differences#migrate_your_appyaml_file

請記住,如果您使用 PHP 7.2 和 App Engine 標準環境,則此運行時處於 Beta 階段,並且此功能可能會以向後不相容的方式進行更改,並且不受任何 SLA 或棄用政策的約束。

請嘗試這個並讓我知道結果。

[1]https://cloud.google.com/appengine/docs/standard/php7/config/appref

相關內容