2014-11-21 3 views
0

Я переношу приложение PHP (LAMP) на хостинг Google App Engine. Я сделал большую часть этого материала, но теперь я застрял на преобразовании правил .htaccess в версию app.yaml.Перенаправления/переопределение Google App Engine

# 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. Как перенаправить пользователя на www.domain.com при посещении через domain.com
  2. Как переписать язык 2 символов код, который появляется именно после имени домена, и передать его как параметр GET в PHP (добавлен с другими параметрами)
  3. Как проверить, существует ли требуемый файл/каталог, а если нет, загрузите файл redirector.php который будет обрабатывать красивые/виртуальные ссылки.

Я проверил документацию на https://cloud.google.com/appengine/docs/php/config/appconfig и https://cloud.google.com/appengine/docs/python/config/appconfig

ответ

1

Существует mod_rewrite демо включены в SDK.

Он должен показать вам, как все это вывести, и имеет файл app.yaml, который показывает, как настроить его для вызова сценария.

+0

Да, я прочитал и проверил это, но все, что на самом деле делает, это перенаправить все на redirector.php в моем примере выше, а затем положить огромное условие case/switch со сложными заменами preg и проверками файлов в php , вместо того, чтобы использовать исходный запрос и вообще не использовать скрипты. – Lincoln