【问题标题】:How can i add a fake base url in yii2如何在 yii2 中添加假的基本 url
【发布时间】:2019-07-18 23:51:51
【问题描述】:

我想要一个 yii2 高级应用的假 URL 下面是我想要实现的示例

主页

www.example.com/er45se5t

用户页面

www.example.com/er45se5t/users/index

解释:

这里的 er45se5t 是一个令牌或标识符。我需要这个令牌出现在每个请求的 URL 中。

尝试过的解决方案:

我尝试在会话中保存令牌并设置它并将其添加到所有 URL

添加了这些规则

'<token:\w+>' => 'site/index',
'<token:\w+>/<controller:\w+>' => '<controller>/index'

问题

当我注销时,此会话被清除,无法将此令牌添加到 URL。

所以注销后,我希望 URL 看起来像这样

www.example.com/er45se5t

www.example.com/er45se5t/site/login

【问题讨论】:

  • 你解决了吗?

标签: url url-rewriting yii2


【解决方案1】:

您可以添加名为 CustomUrlManager 的组件和内容:

命名空间前端\组件; 使用 yii\web\UrlManager; 类 CustomUrlManager 扩展 UrlManager { 公共函数 createUrl($params) { $defaultToken='er45se5t'; if( isset($params['token']) ){ //你可以在这里添加任何东西 $token=$params['token']; 未设置($params['token']); } 别的 { //你可以在这里添加任何东西 $token=$defaultToken; } $url = 父级::createUrl($params); if( $url == '/' ){ 返回 '​​/'.$token; }别的{ 返回'/'.$token.$url; } } }

并在配置文件中作为组件:

'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'class'=>'frontend\components\CustomUrlManager',
'rules'=>[

]

],

您可以将 www.example.com/ 重定向到默认控制器上的某个 www.example.com/er45se5t

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-14
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多