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

динамическая перезапись с использованием $ 1,% 1,% 2 и т. д.

как делать более сложные и динамические перезаписи, используя $ 1,% 1,% 2 и т. д.

Я пытаюсь сделать более динамическую перезапись (много доменов, указывающих на один и тот же сервер / сайт)

#   put 'www' as subdomain if none is given
RewriteCond %{HTTP_HOST}        ^([^\.]+\.[^\.]+)$ [NC]
RewriteRule ^(.*)$          http://www.%1/$1 [L,R=301]

#   rewrite subdomains
RewriteCond %{HTTP_HOST}        ^(admin|files|imap|mysql)\.[^\.]+\.[^\.]+$ [NC]
RewriteCond %{REQUEST_URI}      !^/_(admin|files|imap|mysql)/ [NC]
RewriteRule ^(.*)$          /_%1/$1 [L]

#   redirect to subdomain
RewriteCond %{HTTP_HOST}        ^www\.([^\.]+\.[^\.]+)$ [NC]
RewriteCond %{REQUEST_URI}      ^/_([^/]*)/ [NC]
RewriteRule ^(.*)$          http://%1.domain.com/ [L,R=301]

#   rewrite 'secure' subdomain
RewriteCond %{HTTP_HOST}        ^(demo|secure)\.[^\.]+\.[^\.]+$ [NC]
RewriteCond %{REQUEST_URI}      !^/_secure/ [NC]
RewriteRule ^(.*)$          /_secure/$1 [L]

но теперь я столкнулся с проблемой ..

по #redirect to subdomain Я не могу понять, как решить условие и правило, как и другое, которое я создал ... каким-то образом мне нужно извлечь домен из первого условия, а затем использовать его в правиле с% 1, но как вы можете это сделать, когда у вас есть еще одно промежуточное состояние?

Данные захвата для %1 и т. д. используется из RewriteCond сразу над RewriteRule.

Есть ли причина, по которой оценка / захват вашего пути URI не может просто произойти в RewriteRule? Что-то вроде этого (я думаю, это то, что вы собираетесь?):

RewriteCond %{HTTP_HOST}        ^www\.([^\.]+\.[^\.]+)$ [NC]
RewriteRule ^/_([^/]*)/$        http://$1.%1/ [L,R=301]