Можно ли обрабатывать динамические параметры URL-адреса в app.yaml для google appengine для php?

Можно ли использовать app.yaml в движке приложения Google для php для преобразования страниц, управляемых базой данных, с параметрами URL-адреса (?= после php-страницы в URL-адресе) в более удобочитаемую форму? Если не app.yaml, есть ли другой способ?

Например: www.testpage.com/shoes?id=red-shoes.

преобразуется во что-то вроде: www.testpage.com/shoes/red-shoes


person AAK    schedule 18.07.2015    source источник


Ответы (1)


Насколько я знаю, это невозможно сделать с помощью app.yaml. Причина в том, что если вы взяли что-то вроде того, что вы описываете, например:

handlers:
- url: /(.*?)/(.*)
  script: /\1?id=\2

App Engine правильно идентифицирует этот шаблон /shoes/red-shoes и направит его в /shoes?id=red-shoes. За исключением того, что он обрабатывает /shoes?id=red-shoes как имя файла (которого, очевидно, не существует) вместо строки сценария + запроса.

Итак, способ выполнить то, что вы пытаетесь сделать, будет примерно таким:

handlers:
- url: /(.*?)/(.*)
  script: /mydbhandler.php

Шаблон /(.?)/(.) соответствует таким шаблонам, как /shoes/red-shoes, и отправляет все такие запросы в /mydbhandler.php. Внутри /mydbhandler.php вы должны проверить $_SERVER["REQUEST_URI"], который будет "/shoes/red-shoes", и обработать его оттуда внутри вашего PHP-кода.

person Aaron    schedule 25.07.2015