我已经在我的一台服务器上安装了humhub。在我的网络入口处有一个反向代理服务器,humhub服务器在它后面工作。humhub服务器有一个域名:‘vm-humhub’。
我想重写URL,因为humhub将所有URL放入域名为'vm-humhub',这在我的网络之外访问时是无效的。我想在https://mydomain.com中替换http://vm-humhub。
我首先尝试用apache重写URL,在default-ssl.conf中写成这样:
<Location /humhub>
ProxyPass http://vm-humhub/humhub
ProxyPassReverse http://vm-humhub/humhub
RequestHeader set X_Forwarded_proto 'https'
RequestHeader unset Accept-Encoding
ProxyHTMLEnable On
ProxyHTMLURLMap http://vm-humhub/humhub/ https://mydomain.com/humhub/
ProxyHTMLExtended On
ProxyHTMLCharsetOut utf8
</Location>当我看到HTML时,所有的URL都被成功地重写了。然而,javascript不能很好地工作,页面停止加载消息。
因为humhub在Yii框架上工作,所以我认为使用Yii的urlManager (以及官方安装指南令状)来重写urls是很自然的事情。
然而,我对Yii一无所知。在谷歌搜索了一段时间后,我在conf文件中写道:
<?php return array (
'components' =>
array (
'urlManager' => array(
'urlFormat' => 'get',
'showScriptName' => false,
'rules' => array(
'http://vm-humhub' => 'https://mydomain.com',
),
),
....但什么都没发生。有人能帮帮我吗?
发布于 2014-12-16 13:09:43
我不相信你可以像重写URL一样重写域名,因为域名是用来定位你的Yii代码的。
发布于 2017-05-27 16:55:43
我认为基本问题是您的代理过程配置中有一个错误。
我在apache config中使用以下参数进行了基本相同的设置:
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/希望这能有所帮助--也许有人偶然发现了这篇文章,因为这篇文章太老了;-)
https://stackoverflow.com/questions/27405026
复制相似问题