Как настроить yaml-файл Google App Engine для обработки ошибки 404 - PullRequest
0 голосов
/ 17 октября 2018

enter image description here

Необходимо перенаправить все 404 ссылки на index.html внутри папки www

Это мой app.yaml

runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /
  static_files: www/index.html
  upload: www/index.html

- url: /(.*)
  static_files: www/\1
  upload: www/(.*)

Это статическое угловое приложение 2, и мне нужно направить все страницы, не найденные 404 ошибки в index.html.Там есть папка (www), внутри которой находится весь файл, включая index.html.

1 Ответ

0 голосов
/ 18 октября 2018

Таким образом, добавление этого в качестве последнего правила приведет к тому, что оно будет работать index.html, если все остальные правила не будут выполнены

- url: /.*
  static_files: www/index.html
  upload: www/(.*)

Но я думаю, что вы хотите, чтобы оно действительно выполняло перенаправление;в противном случае ваш базовый URL-адрес все равно будет поддельным.Вам нужно настроить базовый обработчик запросов в коде сервера, чтобы сделать это правильно (и в вашем случае время выполнения вашего сервера python27).

Поэтому добавьте это правило в app.yaml

- url: /.*
  script: main.app

А затем добавьте файл с именем main.py, в котором есть что-то вроде этого:

import webapp2
app = webapp2.WSGIApplication()

class RedirectToHome(webapp2.RequestHandler):
    def get(self, path):
        self.redirect('/www/index.html')


routes = [
    RedirectRoute('/<path:.*>', RedirectToHome),
]

for r in routes:
    app.router.add(r)
...