我正在尝试从我网站中的所有*.php
文件中删除地址中的文件扩展名。例如,如果用户访问mysite.com/about.php
,我希望该网址为mysite.com/about
。
这是我的app.yaml
:
application: mysite
version: 1
runtime: php55
api_version: 1
handlers:
# Static files
- url: /images/*
static_dir: images
- url: /css/*
static_dir: css
- url: /js/*
static_dir: js
# Routing
- url: /services(.*)
script: services.php
- url: /portfolio(.*)
script: portfolio.php
- url: /project(.*)
script: project.php
- url: /about(.*)
script: about.php
- url: /contact(.*)
script: contact.php
- url: /(.*)
script: index.php
我怎样才能在GAE中实现这一目标?
答案 0 :(得分:2)
如果你需要做的就是执行这种类型的路由,你可以使用:
-url: /(.*)
script: /routes.php
但是,使用此方法,您无法处理404错误(尽管它们似乎不会在问题中提供的app.yaml中处理)。 app.yaml中的错误处理程序不会为404工作,因为如果他们无法匹配您提供的任何路线,他们就会开始工作。
所以,如果你想处理404错误等等,你应该做的是从php脚本内部进行路由,如下所示:
{{1}}
并在routes.php内部检查$ _SERVER [' REQUEST_URI']变量以查看请求的页面,并相应地提供相应的内容。
编辑:感谢@Avinash Raj清理正则表达式Here