У нас есть несколько настроек поддоменов, и я хочу упростить конфигурацию apache, особенно потому, что эти конкретные поддомены изменчивы. Во всяком случае, я пытаюсь получить правило перезаписи, включающее хост.
Пока у меня есть:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*).net.au$
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%1.net.au$1 [R=302,L]
Это основано на https://stackoverflow.com/questions/3634101/url-rewriting-for-different-protocols-in-htaccess и http://httpd.apache.org/docs/2.4/rewrite/vhosts.html
Однако шаблон в первом условии не записывается в перезаписанный адрес, и в конечном итоге меня отправляют на .net.au / куда угодно (я не могу отправлять сообщения с https впереди) - я что-то пропустил?
Запуск apache 2.4 в Ubuntu 14.04
Простой случай, предложенный Ladadadada, работает, когда доменное имя совпадает между запрашиваемым и предполагаемым хостом:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=302,L]
Однако дополнительная трудность заключается в том, что мне также нужно иметь http:// sub-domain.local
перенаправить на http:// sub-domain.net.au
- так что используя %{HTTP_HOST}
было бы недостаточно.
Я еще раз взглянул на несколько примеров и понял, что обратная ссылка% 1, похоже, применима только к RewriteCond непосредственно перед RewriteRule.
Я переупорядочил вещи:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(.*)(.local|.net.au)$
RewriteRule ^(.*)$ https://%1.net.au$1 [R=302,L]
И перенаправления работают отлично