Назад | Перейти на главную страницу

правила apache mod_rewrite для поддоменов и спокойной структуры

Я пытаюсь настроить несколько правил перезаписи, которые позволяют существовать спокойной структуре URL-адресов, но только на определенном поддомене. Несколько поддоменов уже указывают на общую кодовую базу. У меня также есть существующая перезапись, чтобы использовать умный PHP, который уже все фиксирует. Все поддомены, включая оставшийся, необходимо перенаправить туда в качестве последнего шага.

Наконец, для удобства я также хотел бы попытаться поместить поддомен в переменную строки запроса, если это возможно, чтобы избежать попыток извлечь его программным способом позже.

Я новичок в mod_rewrite, и у меня проблемы с тем, чтобы все это работало вместе ... вот мои смешанные попытки, которые не совсем работают вместе.

# copy subdomain to variable.  
# ideally though, dev.subdomain.domain.com would only copy "subdomain", not "dev.subdomain". 
# this should work for all subdomain, and keep going.
RewriteCond %{HTTP_HOST} (.+).domain.com [NC]
RewriteRule / /$1?subdomain=%1 [QSA]

# restful api, only for restful.domain.com. how to apply to all rules?
RewriteCond %{HTTP_HOST} restful.domain.com
RewriteRule ^/user/([^/]+)/ /calendar/?id=$1 [QSA,N]
RewriteRule ^/admin/([^/]+)/ /calendar_admin/?id=$1 [QSA,N]
RewriteRule ^/user/([^/]+)/calendar/ /calendar/?id=$1 [QSA,N]
RewriteRule ^/user/([^/]+)/profile/ /profile/?id=$1 [QSA,N]

# Smarty rewrite rule the request from "/foo/bar/" to "/dispatch.php/foo/bar/"
RewriteRule     ^(.*)$    dispatch.php/$1 [L]

Как я могу сделать так, чтобы первый раздел применялся только для поддомена restful.domain.com? Может ли он еще переписать, а затем применить умное правило с новыми URL-адресами?