首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Yii urlManager重写域名

如何用Yii urlManager重写域名
EN

Stack Overflow用户
提问于 2014-12-10 23:41:02
回答 2查看 802关注 0票数 2

我已经在我的一台服务器上安装了humhub。在我的网络入口处有一个反向代理服务器,humhub服务器在它后面工作。humhub服务器有一个域名:‘vm-humhub’。

我想重写URL,因为humhub将所有URL放入域名为'vm-humhub',这在我的网络之外访问时是无效的。我想在https://mydomain.com中替换http://vm-humhub

我首先尝试用apache重写URL,在default-ssl.conf中写成这样:

代码语言:javascript
复制
<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文件中写道:

代码语言:javascript
复制
<?php return array (
  'components' =>
  array (
    'urlManager' => array(
    'urlFormat' => 'get',
    'showScriptName' => false,
    'rules' => array(
      'http://vm-humhub' => 'https://mydomain.com',
    ),
),
....

但什么都没发生。有人能帮帮我吗?

EN

回答 2

Stack Overflow用户

发布于 2014-12-16 13:09:43

我不相信你可以像重写URL一样重写域名,因为域名是用来定位你的Yii代码的。

票数 0
EN

Stack Overflow用户

发布于 2017-05-27 16:55:43

我认为基本问题是您的代理过程配置中有一个错误。

我在apache config中使用以下参数进行了基本相同的设置:

代码语言:javascript
复制
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

希望这能有所帮助--也许有人偶然发现了这篇文章,因为这篇文章太老了;-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27405026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档