parameters de script do Google App Engine app.yaml PHP

No meu GAE PHP app.yaml estou tentando fazer isso:

application: myapp version: 1 runtime: php api_version: 1 threadsafe: yes handlers: - url: /sitemap.xml static_files: sitemap.xml upload: /sitemap\.xml - url: /MyOneLink script: /myDynamicContent.php?myparam=hardcoded_value_1 - url: /MySecondLink script: /myDynamicContent.php?myparam=hardcoded_value_2 

então pode navegar http://example.com/MyOneLink e obter o resultado do php dynamic (que depende do valor myparam codificado)

O problema é que, ao navegar, nada é mostrado. qualquer ideia ?

btw: você pode descobrir por que também estou publicando um “sitemap.xml”: ele será usado para expor todos os meus links

Obrigado diego

As outras respostas seriam boas para um número finito de valores que são codificados (como mostrado na pergunta).

Mas se você quer trabalhar com uma versão verdadeiramente dinâmica com infinitas possibilidades de valores, você pode pensar no seguinte ( não funciona ):

 - url: /MyLinks/(.*)/? script: /myDynamicContent.php?myparam=\1 

O acima não funciona. Você pode resolver o problema usando um simples hack PHP.

Atualize o app.yaml para:

 - url: /MyLinks/.* script: /myDynamicContent.php 

Em myDynamicContent.php , obtenha o valor de $_SERVER['REQUEST_URI'] e analise esta string para obter o valor pretendido para myparam .

Atualizar! Método mais elegante:

  

Como o parse_url sempre obtém as informações do caminho, podemos depender com segurança de índices codificados. A matriz produzida por explode para string /MyLinks/value_1 conterá uma string vazia no índice 0 , MyLinks em 1 , value_1 em 2 , e assim por diante.

Método clunkier original:

  

Dica: você pode usar aspas simples ' vez de aspas duplas "

Você não pode passar parâmetros no parâmetro “script:”.

Uma maneira de corrigir isso seria que dois tenham dois scripts de “input”, que incluem seu script principal, como este:

  

O que você pode então fazer referência no app.yaml

Esta é provavelmente a maneira mais rápida de fazer o seu código existente funcionar (embora existam melhores maneiras de fazê-lo).

lendo o documento oficial https://cloud.google.com/appengine/docs/php/config/mod_rewrite eu fiz isso:

 <$php $path = parse_url($_SERVER['PATH_INFO'], PHP_URL_PATH); if ($path == '/path') { } ?> 
    Intereting Posts