Google App Engine重定向/重写

时间:2014-11-21 15:51:03

标签: php .htaccess google-app-engine

我正在将我的PHP(LAMP)应用程序迁移到Google App Engine托管。我已经完成了大部分工作,但现在我仍然坚持将.htaccess规则转换为app.yaml版本。

# Redirect all requests for any domain not being "www.domain.com"
RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC]
RewriteRule ^(.*) http://www.domain.com/$1 [L,R=301,NC]

# Redirect all requests for the mobile version to the mobile subdomain
RewriteCond %{REQUEST_URI} ^/([a-z][a-z])/mobile(/)?(.*)
RewriteRule ^([a-z][a-z])/mobile(/)?(.*) https://m.domain.com/$1/$3 [R=301,L]

# If the URL contains ".php", then the request should be handled by that particular script
RewriteCond %{THE_REQUEST} (.*\.php) [NC]
RewriteRule ^([a-z][a-z])/(.*) /$2 [L]

# Most of the other requests should be handled by redirector.php
RewriteCond %{THE_REQUEST} !(/([a-z][a-z])/controls/.*)
RewriteCond %{THE_REQUEST} !(/api/.*)
RewriteCond %{THE_REQUEST} !(/admin/.*)
RewriteCond %{HTTP_HOST} !^m\.domain\.com [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ redirector.php [L]

我遇到的问题有三种:

  1. 如果通过domain.com访问,如何将用户重定向到www.domain.com
  2. 如何重写域名后面的2字符语言代码,并将其作为GET参数传递给PHP(添加其他参数)
  3. 如何检查所请求的文件/目录是否存在,如果不存在,请加载一个redirector.php文件,该文件将自行处理漂亮/虚拟链接。
  4. 我已在https://cloud.google.com/appengine/docs/php/config/appconfighttps://cloud.google.com/appengine/docs/python/config/appconfig

    检查了文档

1 个答案:

答案 0 :(得分:1)

SDK中包含mod_rewrite演示。

它应该向您展示如何执行上述所有操作,并且有一个app.yaml文件,向您展示如何配置它以调用脚本。