加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

zend-framework – 帮助将子域映射或路由到Zend Framework Contr

发布时间:2020-12-13 17:05:43 所属栏目:PHP教程 来源:网络整理
导读:我想要做的是使用子域来获取我的ZF应用程序的特殊移动版本.理想情况下,它会映射到特定的控制器,如下面的示例,但此时我愿意尝试任何有效的方法: 防爆. m.domain.com/action将路由到“移动”控制器并指定任何操作. 我在这里和谷歌的其他地方发现了一些类似的
我想要做的是使用子域来获取我的ZF应用程序的特殊移动版本.理想情况下,它会映射到特定的控制器,如下面的示例,但此时我愿意尝试任何有效的方法:

防爆. m.domain.com/action将路由到“移动”控制器并指定任何操作.

我在这里和谷歌的其他地方发现了一些类似的问题,但我觉得我错过了一些明显的东西,因为无论我设置什么路线,它都被忽略了.我怀疑它与htaccess有关但在那里可能有问题.

这是我目前在我的bootstrap文件中的路径(但我在这里尝试了许多不同的模式).现在我只是想让它显示简单的普通索引:

$hostRoute = new Zend_Controller_Router_Route_Hostname(':subdomain.domain.com',array(
            'controller' => 'index','action' => 'index'
            )
    );
$plainPathRoute = new Zend_Controller_Router_Route(':controller/:action/*',array('controller' => 'index','action' => 'index'));
$controller->getRouter()->addRoute('mobile',$hostRoute->chain($plainPathRoute));

我的htaccess有:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$- [NC,L]
RewriteRule ^.*$index.php [NC,L]

现在有两种方法我一直在这里尝试,因为我一直很沮丧.

>在我的主机帐户中创建子域“m”
>我的网站托管帐户中不存在子域“app”

对于方法1,它只是转到domain.com/m/中的通用index.html文件.方法2告诉我页面不存在.

我真的希望这里有一些我不知道的东西.就像我上面提到的那样,只要我有一个子域指向特定的控制器,我就不会挑剔它是如何执行的.这将是一个非常简化的网站版本,所以我真的不需要做任何复杂的事情.

谢谢你的帮助.

解决方法

首先,您需要配置虚拟主机以处理多个域:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    ServerAlias m.example.com
    ServerAlias www.m.example.com
    ...

您也可以通过主机面板选项添加指向您的站点根目录的新子域来执行此操作.

然后,您可以创建一个路由链,如您的示例所示,或者自己处理交换机,例如在控制器插件中:

$host = strtolower($request->getServer('HTTP_HOST'));
if ('m.' === substr($host,2) || 'www.m.' === substr($host,6)) {
    $themes->setTheme('m');
    $userSession->theme = 'm';
    ...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读