Сборка обработчика yaml облачного движка - PullRequest
0 голосов
/ 21 октября 2019

Я не разработчик и мне нужна помощь в настройке файла app.yaml для хранилища Google Cloud. Вот как выглядит моя конфигурация app.yaml:

runtime: php55
api_version: 1
threadsafe: true

handlers:
- url: /assets/img
  static_dir: assets/img

- url: /images
  static_dir: images

- url: /Thank You!_files
  static_dir: Thank You!_files

- url: /.*
  script: box.html
  login: required
  auth_fail_action: redirect

- url: /index.php
  script: box.html
  login: required
  auth_fail_action: redirect

- url: /login
  static_dir: login.php

- url: /login.php
  static_dir: login.php

- url: /main.*

- url: /Thank You!.html
  script: Thank You!.html

- url: /001100110011wine.html(.+)
  script: 001100110011wine.html

- url: /001100110011tomato.html(.+)
  script: 001100110011tomato.html

- url: /001100110011bed.html(.+)
  script: 001100110011bed.html

- url: /001100110011bag.html(.+)
  script: 001100110011bag.html

- url: /001100110011go.html(.+)
  script: 001100110011go.html

- url: /001100110011other.html(.+)
  script: 001100110011other.html

Но когда я нажимаю на other.html, он продолжает перенаправлять меня на главную страницу box.html.

1 Ответ

0 голосов
/ 22 октября 2019

Вы упомянули, что вы не разработчик, поэтому я разделю этот ответ на части, чтобы я мог охватить все, что нашел.

1. Подстановочные знаки

Подстановочные знаки представляют собой специальные символы, которые могут заменять неизвестные символы в текстовом значении и удобны для поиска нескольких элементов с похожими, но не идентичными данными.

Символ * соответствует любому количеству символов. Вы можете использовать звездочку (*) в любом месте строки символов.

Пример: «wh *» совпадает с что, белым и почему , но не некоторое время или часы.

Понимание этого поможет намдля дальнейших разделов.

2. О файле app.yaml

У вас проблемы с app.yaml для PHP 5 . Этот файл указывает, как URL-пути соответствуют обработчикам запросов. Другими словами: он используется, чтобы сообщить вашему приложению, какой скрипт будет запускаться, когда пользователь вводит определенные URL-адреса или веб-адреса.

Например, следующее:

- url: /login.*
   script: login.php 

можно прочитать как:«Любой URL, который в конце соответствует /login.*, будет обрабатываться PHP-скриптом login.php»

Внутри login.php является частью логики вашего приложения.

3. Вызов определенных путей

A путь к файлу описывает местоположение файла в структуре папок веб-сайта.

Абсолютные пути к файлам :Он описывает полный адрес (URL) для доступа к интернет-файлу. Пример: https://mywebsite.com/web-content/folder/awesome.html

Относительный путь к файлу : описывает путь к файлу относительно местоположения текущего файла веб-страницы. Пример: folder / awesome.html

4. Обслуживание статических файлов

Вы также можете обслуживать файлы, такие как .png, .jpg или .gif, из своего файла app.yaml. Например, следующее:

- url: /(.*\.(gif|png|jpg))$
  static_files: static/\1
  upload: static/.*\.(gif|png|jpg)$

Может читаться как: «Все запросы, оканчивающиеся на gif, png или jpg, вернут имя файла с таким расширением».

Естьдругие способы вызова файлов с вашего сайта. Например, если вы напишите https://myweb.com/new.html,, вы можете получить файл new.html в качестве ответа.

5. Ваш сценарий

Я бы хотел, чтобы вы обратили особое внимание на следующую часть вашего файла:

- url: /.*
    script: box.html

Это можно прочитать как: "Любые запросы, которые несовпадать с любым из перечисленных ", будет перенаправлен на box.html"

Теперь взгляните на:

- url: /001100110011other.html(.+)
    script: 001100110011other.html

При попытке войти в "/other.html",он не совпадает с регулярным выражением этого URL, поэтому вы перенаправляетесь на box.html, значение по умолчанию.

6. Рекомендации

  • Для обработки ответов или страниц, которые вы хотели бы видеть в логике вашего приложения. Например, Обработка HTTP-запросов от Laravel .

  • Используйте приложение. Конфигурации файла yaml просто для того, чтобы указать, какой файл вы хотите использовать для обработки или обработки запроса вместо того, чтобы обслуживать оттуда html-файлы.

Надеюсь, это полезно!

...