【问题标题】:link that includess .php? in google app engine包含.php 的链接?在谷歌应用引擎中
【发布时间】:2014-12-28 20:46:08
【问题描述】:

我在谷歌的应用引擎上使用 app.yaml。

我的 php 文件中有一个链接,格式如下:profile.php?id=1,它为我提供了用户 1 的个人资料页面。知道如何处理此链接在我的 app.yaml 文件中?这就是我所做的:

application: myappl-testing-858585  
version: 1
runtime: php
api_version: 1
threadsafe: yes

handlers:

- url: /profile.php?id=
  script: profile.php?id=

【问题讨论】:

    标签: google-app-engine handler


    【解决方案1】:

    您的 app.yaml 文件应该只路由路径,如下所示:

    handlers:
    - url: /profile
      script: profile.php
    

    (请注意,我还从 URL 中删除了“.php”,因为您确实不应该公开“.php”、“.html”、“.jsp”、“.asp”等内部文件格式。在您的网址中...这是您网站的一个实现细节,用它来打扰用户既不好 - 它会使网址更丑陋 - 而且它也使您将来更难以修改您的网站您是否应该将一种实现替换为另一种实现)。

    然后,在您的 *.php 文件中,您只需使用 $_GET 来测试/检索 ID 的存在。

    但是,就您的站点结构而言,您可能希望考虑将 ID 更改为路径的一部分,而不是 GET 参数,如果它始终是必需的参数(仅用于 URL 的精确性)。在这种情况下,您可以像下面这样注册处理程序:

    handlers:
    - url: /profile/(\d+)
      script: profile.php
    

    ...让您的网址看起来像“/profile/123”而不是“/profile?id=123”。

    【讨论】:

    • 好的,谢谢您的建议。你能检查一下我之前的问题吗?这里是stackoverflow.com/questions/27680022/…
    • 你的另一个问题实际上与这个相同,所以我投票决定关闭另一个作为重复的问题。
    • 你能检查一下我之前的问题吗?我已经按照你告诉我的方式改了,但还是不行?
    • 在您的另一个问题中,您希望处理 /123 而不是 /profile/123 形式的 URL,在这种情况下,“url”应该是匹配的正则表达式,例如“/(\d+) "。
    • 将其更改为 - url: /profile_full/(\d+) 脚本:profile_full.php。依然没有。是不是因为我用htaccess剪掉了url有问题?
    猜你喜欢
    • 2011-12-08
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 2014-07-31
    相关资源
    最近更新 更多