У меня есть домен foo.bar.example.com. foo - один из многих поддоменов в bar.example.com. Мне нужно захватить и перенаправить все ссылки на foo.bar.example.com, которые начинаются с «/ special /».
Я использовал следующий код в моем .htaccess, чтобы успешно перенаправить foo.bar.example.com/special/asdf на special.example.com/foo/asdf.
RewriteCond %{HTTP_HOST} (.*?)\.bar\.example\.com
RewriteRule ^/special/(.*)$ http://special.example.com/%1/$1 [L,NC,QSA]
Круто, все работает. В чем проблема?
У меня есть много партнеров (this.that.com, silly.billy.com и т. Д.), Которые настроили cname, чтобы указывать на мои совпадающие поддомены (that.bar.example.com, billy.bar.example.com и т. Д.) ). Мне нужно this.that.com/special/asdf, чтобы также перенаправить на special.example.com/that/asdf без необходимости вносить какие-либо дополнительные изменения партнеру.
К сожалению, в настоящее время у меня нет возможности проверить это. Насколько я понимаю, mod_rewrite работает на основе того, что вводит браузер, а не того, на что он получает cname'd. Если это правда, то не смогу ли я использовать свой стандарт именования доменов? Я не могу рассчитывать на то, что мои партнеры будут следовать аналогичным стандартам. Как я могу заставить this.that.com/special/asdf перенаправить на special.example.com/that/asdf?