我有一臺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
等
我已經設置了子域admin.fonix232.net一個簡單的mod_rewrite規則,以下列方式(在的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],其中*不匹配[目標],[目標] .fonix232.net)重定向到它們各自的目標也不錯。 – fonix232