【问题标题】:How to rewrite domain with Yii urlManager如何使用 Yii urlManager 重写域
【发布时间】:2014-12-10 15:41:01
【问题描述】:

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

我想重写 URL,因为 humhub 将所有带有域名“vm-humhub”的 URL,当从我的网络访问时无效。我想把http://vm-humhub换成https://mydomain.com

我首先尝试通过 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 重写 url 很自然(官方安装指南是这样写的)。

但是,我对 Yii 一无所知。 google了一会儿,我在conf文件中写了:

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

但是什么也没发生。有人可以帮助我吗?

【问题讨论】:

    标签: php apache yii dns social-networking


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我认为基本问题是您的代理通道配置有错误。

      我在 apache config 中使用这些参数的设置基本相同:

      SSLProxyVerify none
      SSLProxyCheckPeerCN off
      SSLProxyCheckPeerName off
      ProxyPreserveHost On
      ProxyRequests Off
      ProxyPass / http://localhost:8080/
      ProxyPassReverse / http://localhost:8080/
      

      希望对您有所帮助 - 也许其他人偶然发现了这篇文章,因为它已经很老了 ;-)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-09
        • 2013-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多