Я загрузил свои файлы в свой экземпляр Google App Engine и успешно смог подключиться к базе данных и получить данные. Тем не менее, я пытаюсь получить конкретные данные с помощью запроса GET, добавив переменные в URL. Я пытаюсь позвонить по URL (с измененным здесь именем моего приложения) http://MYAPP.appspot.com/getCategories?catId=1 и я использую запрос get, чтобы получить идентификатор категории, который добавляется в конце. Я полагаю, что проблема связана с моим файлом app.yaml, так как все остается по умолчанию в моем улове все внизу. Тем не менее, на моем местном экземпляре это работает просто отлично. Как я могу изменить свой файл app.yaml, чтобы убедиться, что он запускает первый экземпляр /getCategories.php вместо index.php? Нужно ли писать регулярное выражение для учета данных, добавляемых в конец?
#app.yaml
application: MYAPP
version: 1
runtime: php
api_version: 1
handlers:
- url: /getCategories.php
script: /getCategories.php
- url: /.*
script: index.php
URL, к которому вы обращаетесь, http://MYAPP.appspot.com/getCategories?catId=1
, Но нет обработчика для getCategories
, Так что всегда идет к обработчику по умолчанию index.php
Согласно вашему app.yaml, ваш URL должен быть http://MYAPP.appspot.com//getCategories.php?catId=1
Или если вам нужен ваш URL как есть, то вам нужно изменить обработчик app.yaml так, чтобы
- url: /getCategories
script: /getCategories.php
Я согласен с Nijin, но я бы также добавил:
Хотя у вас есть только обработчик, соответствующий вашему индексу (catch -url: /.* с script: index.php), все, что нужно сделать, это перехватить ВСЕ запросы на любой странице и направить их в файл индекса (что хорошо как запасной вариант или может быть использован как перехват ошибок). Тем не менее, Nijin указал, что вам нужен маршрут для вашего скрипта /getCategories.php, и это хорошо, за исключением того, что вы в конечном итоге будете думать, что вам нужен один для каждой написанной вами страницы. Лучшая идея — создать обработчик url / script, который перехватывает набранный (или связанный) url в адресной строке и сопоставляет его с php-файлом на диске, который должен обслуживать GAE. Перехват всех (-url: /.*) должен идти в LAST в app.yaml, чтобы вы ничего не пропустили и перенаправили их обратно на страницу индекса, если они что-то вводят неправильно. Следовательно:
handlers:
- url: /(.+\.php)$
script: \1
- url: /.*
script: index.php
Надеюсь, что это имеет смысл!
Приветствия.