【问题标题】:Zend Framework HTTPS URLZend 框架 HTTPS URL
【发布时间】:2011-06-21 14:06:32
【问题描述】:

是否有或多或少的标准方法来指定将创建具有明确指定方案的 URL 的路由?

我已经尝试了here 指定的解决方案,但由于以下几个原因,它对我来说并不是很好:

  1. 它不支持基本 url 请求属性。当明确指定 URL 方案时,实际上重写路由器会忽略它。
  2. 需要为每个依赖于方案的 URL 指定单独的静态路由(由于忽略基本 URL,因此无法将模块路由与主机名路由链接)。
  3. 只要请求对象在 FrontController 中尚不存在,就需要在引导程序中的路由器初始化时手动确定 HTTP_HOST。

【问题讨论】:

    标签: zend-framework url routing https


    【解决方案1】:

    结合使用 ServerUrl 和 Url 视图助手来构建您的 URL,例如(视图上下文)

    <?php $this->getHelper('ServerUrl')->setScheme('https') ?>
    ...
    <a href="<?php echo $this->serverUrl($this->url(array(
        'url' => 'params'), 'route', $reset, $encode)) ?>">My Link</a>
    

    【讨论】:

      【解决方案2】:

      您可以编写自己的自定义 View 帮助程序来编写 URL。看看http://www.evilprofessor.co.uk/239-creating-url-in-zend-custom-view-helper/

      <?php 
      
      class Pro_View_Helper_LinksUrl  
          extends Zend_View_Helper_Abstract  
      {  
          /** 
           * Returns link category URL 
           * 
           * @param  string          $https 
           * @param  string          $module 
           * @param  string          $controller 
           * @param  string          $action 
           * @return string Url-FQDN 
           */  
          public function linksUrl($https = false, $module = 'www',  
              $controller = 'links', $action = 'index')  
          {  
              $router = Zend_Controller_Front::getInstance()->getRouter();  
      
              $urlParts = $router->assemble(array(  
                  'module'     => $module,  
                  'controller' => $controller,  
                  'action'     => $action,  
              ), 'www-index');  
      
              $FQDN = (($https) ? "https://" : "http://") . $_SERVER["HTTP_HOST"] . $urlParts;
      
              return $FQDN;
          }  
      }
      

      【讨论】:

      • 这是关于如何在 CDN 内的不同主机之间轮换 URL。问题是关于如何使用现有路由编写 URL,但为其中一些路由指定 HTTPS 方案。谢谢。
      • 您意识到该方法只返回https://http:// 而没有别的
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多