【问题标题】:How to get URL path to a Module in yii with rewrite engine on ?如何在打开重写引擎的情况下获取 yii 中模块的 URL 路径?
【发布时间】:2013-05-17 09:17:57
【问题描述】:

您好,感谢您的阅读。

我已经安装了 yii 用户模块并尝试使用以下代码链接到个人资料页面;

 'url' => Yii::app()->getModule('user')->profileUrl),

在我的 main.php 中,我有以下内容;

'urlManager' => array(
        'urlFormat' => 'path',
        'showScriptName' => false,
        'caseSensitive' => false,
        'rules' => array(
            'gii' => 'gii',
            '<controller:\w+>/<id:\d+>' => '<controller>/view',
            '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
            '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
            '<action>' => 'site/<action>',
        ),
    ),

在我的 htaccess 文件中我有这个;

RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php

它有效,我被重定向到http://localhost/spob/user/profile,但是当我点击另一个链接到我的受保护/视图的链接时,例如'url' =&gt; array('employercontract/index')),,我收到以下错误Error 404 Unable to resolve the request "user/employercontract/index".,正确的路径将是http://localhost/spob/employercontract/index,没有用户路径。

我认为问题可能出在我声明规则的 main.php 中,任何建议都将不胜感激,我整个上午都在努力解决这个问题

【问题讨论】:

    标签: .htaccess yii yii-extensions yii-components


    【解决方案1】:

    如果我理解你的话……

    尝试替换这个

    'url' => array('employercontract/index'))
    

    有了这个

    'url' => array('/employercontract/index'))
    

    注意前导斜杠。这将告诉 UrlManager 应该基于站点根目录创建链接。没有它 - 链接基于当前模块(在您的情况下为用户模块)。

    我希望这会有所帮助。

    【讨论】:

    • 它确实有帮助,这是正确的答案也感谢您的解释
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2023-03-31
    • 2013-03-13
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多