我在tomcat前面使用apache,所以我可以使用mod_proxy將請求從域重定向到tomcat url。我在服務器上遇到了一個問題,在使用子域時,它想要返回到基本域。有沒有辦法將example.com/foo的所有請求重定向到foo.example.com?Apache重定向來自域名+路徑的請求
<VirtualHost *:80>
ServerName example.com/app
ProxyPreserveHost Off
ProxyPass/http://app.example.com:8080/AppName/
ProxyPassReverse/http://app.example.com:8080/AppName/
</VirtualHost>
上面的示例不起作用。我推測這是因爲我無法在服務器名稱中包含路徑。
下面是我根據接受的答案標記的工作版本。
<VirtualHost *:80>
ServerName example.com/app
ProxyPreserveHost Off
ProxyPass/http://app.example.com:8080/AppName/
ProxyPassReverse/http://app.example.com:8080/AppName/
# Rewrite all request from example.com/foo to foo.example.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^/foo/?(.*) http://foo.example.com/$1 [R,L]
</VirtualHost>
我正在努力如何使用重寫,因爲這實際上不是一個Apache網站。 Apache實際上只是坐在前面,並將請求轉發到一個tomcat應用程序url。 – ryandlf
劃痕。這工作。我沒有在.htaccess中包含重寫(因爲我沒有),而是直接將其包含在虛擬主機中。我將在原始帖子中包含正在運行的虛擬主機標籤。 – ryandlf