У меня есть Synology DSM, настроенный для домашнего хостинга, и я пытался поиграть с ним. Моя текущая цель - назначить субдомены определенным службам, например. панель администратора DSM, SickBeard и т. д.Apache mod_rewrite - переписать порт в поддомен
Единственная проблема заключается в том, как Synology управляет своими услугами. Некоторые из них просто основаны на веб-хосте (и помещаются в папку/var/services/web/в своей собственной подпапке), а некоторые из них работают на отдельных портах (например, Sickbeard работает на порту 8083, а панель администратора работает на порт 5000).
Результаты очень просты: перенаправлять поддомены (см. Ниже) к этим портам, БЕЗ отображения портов.
admin.fonix232.net -> fonix232.net:5000
sb.fonix232.net -> fonix232.net:8083
home.fonix232.net -> fonix232.net:8085
т.д.
Я создал простое правило mod_rewrite для подобласти admin.fonix232.net, следующим образом (в HTTPd-vhost.conf-пользователь):
<VirtualHost *:*>
ServerName admin.fonix232.net
RewriteEngine on
RewriteCond %{HTTP_HOST} admin\.fonix232\.net [NC]
RewriteRule ^/(.*)$ http://fonix232.net:5000/$1 [P,QSA,L]
</VirtualHost>
он отлично работает, за исключением того, что не переписать порт - он останется 5000, но, по крайней мере, на субдомене.
Как я могу удалить его?
Эта строка: _it не переписывает the_port - он остается 5000, _ кажется противоречивым. Посещение http://admin.fonix232.net будет на порту 80, так что вы имеете в виду, когда говорите «он остается 5000»? – TecBrat
Я имею в виду, что посещение admin.fonix232.net не будет оставаться на порту 80 - оно бросает меня в admin.fonix232.net:5000 и перенаправляет каждый вызов на это. Было бы также полезно перенаправить прямые вызовы портов (* .fonix232.net: [PORT], где * не соответствует [target], [target] .fonix232.net) к их соответствующей цели. – fonix232