我尝试了所有方法,但没找到合适的答案。我很确定这肯定是重复的,但请告诉我正确的答案。
这是我的情况。项目位于仪表盘.example.com/link1,还有“n”个其他链接,如仪表盘.example.com/link1/sub1、仪表盘.example.com/link1/sub1/sub2 等等...但是,我希望它在 URL 中以 link1.example.com/sub1、link1.example.com/sub1/sub2 等等的形式提供...
我在 .htaccess 中尝试过类似这样的操作
RewriteCond %{HTTP_HOST} ^dashboard\.example\.com$
RewriteRule ^([^/.]+)(/.*)?$ http://$1.example.com$2 [L,R=301]
通过这样做,我成功地重定向到link1.example.com
但是的,那里没有我想要的项目内容(dashboard.example.com/link1
)
我之前也尝试过如下方式使用代理,但没有成功。
<VirtualHost *:80>
ServerName link1.example.com
ServerAdmin webmaster@localhost
ProxyPreserveHost On
ProxyPass / http://localhost/dashboard/
ProxyPassReverse / http://localhost/dashboard/
</VirtualHost>
我知道我不只是在那里,谢谢你试图帮助我。
答案1
最好的做法是将 link1.example.com 作为 ServerAlias 添加到 dashidone.example.com VHost,并在 Host 标头为 link1 时正确重写 URL。
RewriteCond %{HTTP_HOST} ^dashboard\.example\.com$
RewriteRule ^([^/.]+)(/.*)?$ http://$1.example.com$2 [L,R=301]
RewriteCond %{HTTP_HOST} ^link1\.example\.com$
RewriteRule ^(.*)$ /link1/$1 [L]
类似这样。我还没有测试过,但它应该工作。