Subdomínios de roteamento com querystrings

1
RewriteEngine on
Options -Indexes
DirectoryIndex index.php
RewriteBase /

RewriteRule ^user/([a-zA-Z]+)/([a-zA-Z]+)(/)?$ index.php?controller=main&function=$1&arguments=$2 [NC,L]

Eu posso ir em mysite.com/one/two para ir main->one(two)

Gostaria de encaminhar os pedidos de subdomínio da mesma forma.

como eu configuraria uma regra como essa para que api.mysite.com tomasse o seguinte?

controller=api&function=$1&arguments=$2 [NC,L]

(permitindo-me ir api.mysite.com / um / dois para bater api- > um (dois))

    
por tester 30.05.2012 / 01:44

2 respostas

3

Seria algo como

RewriteCond %{HTTP_HOST} ^(.*)\.mysite\.com
RewriteRule ^user/([a-zA-Z]+)/([a-zA-Z]+)(/)?$  \
  index.php?controller=%1&function=$1&arguments=$2 [NC,L]

mod_rewrite permite o uso de% N, onde N é 1..9, para corresponder aos padrões entre colchetes do RewriteCond anterior, então %1 é usado para substituir no prefixo de domínio api do rewriteCond

    
por 30.05.2012 / 02:07
0

Acabei descobrindo que era mais fácil criar um novo host virtual e apontá-lo para um novo arquivo de htaccess específico da API:

ServerName api.mysite.com
DocumentRoot /var/www/host/mysite.com/html
AccessFileName .api.htaccess # <-- this did the trick
    
por 30.05.2012 / 20:00