是否可以将子域分配给模块?例如 seller.domain.com 到卖方模块



下面是我在本地系统上的虚拟主机:

<VirtualHost *:80>
ServerAdmin kishan@localhost.com
DocumentRoot /opt/lampp/htdocs/advanced
ServerName dev.com
ServerAlias dev.com
ErrorLog logs/mysite.local-error_log
CustomLog logs/mysite.local-access_log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin kishan@localhost.com
DocumentRoot /opt/lampp/htdocs/advanced
ServerName seller.dev.com
ServerAlias seller.dev.com
ErrorLog logs/mysite.local-error_log
CustomLog logs/mysite.local-access_log common
</VirtualHost>

用于管理的后端,因此设置为 dev.com/webxadmin/login

以下是将名称更改为后端/Web/索引.php更改为"WebxAdmin"的过程。

<?php
namespace commoncomponents;

class Request extends yiiwebRequest {
    public $web;
    public $adminUrl;
    public function getBaseUrl(){
        return str_replace($this->web, "", parent::getBaseUrl()) . $this->adminUrl;
    }

    /*
        If you don't have this function, the admin site will 404 if you leave off 
        the trailing slash.
        E.g.:
        Wouldn't work:
        site.com/admin
        Would work:
        site.com/admin/
        Using this function, both will work.
    */
    public function resolvePathInfo(){
        if($this->getUrl() === $this->adminUrl){
            return "";
        }else{
            return parent::resolvePathInfo();
        }
    }
}

后端/配置/主.php

'components' => [
        'request' => [
            'class' => 'commoncomponentsRequest',
            'web'=> '/backend/web',
            'adminUrl' => '/webxadmin'
        ],

这是根目录上的 .htaccess

Options +FollowSymlinks
RewriteEngine On
# deal with admin first
RewriteCond %{REQUEST_URI} ^/(webxadmin)
RewriteRule ^webxadmin/assets/(.*)$ backend/web/assets/$1 [L]
RewriteRule ^webxadmin/css/(.*)$ backend/web/css/$1 [L]
RewriteCond %{REQUEST_URI} !^/backend/web/(assets|css)/
RewriteCond %{REQUEST_URI} ^/(webxadmin)
RewriteRule ^.*$ backend/web/index.php [L]


RewriteCond %{REQUEST_URI} ^/(assets|css)
RewriteRule ^assets/(.*)$ frontend/web/assets/$1 [L]
RewriteRule ^css/(.*)$ frontend/web/css/$1 [L]
RewriteCond %{REQUEST_URI} !^/(frontend|backend)/web/(assets|css)/
RewriteCond %{REQUEST_URI} !index.php
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ frontend/web/index.php

这是我在后端/模块/卖家/卖家中的模块.php使用 Yii-2 项目,我有电子商务网站,我正在尝试访问子域上的卖家模块,例如 seller.dev.com 所有控制器和操作?

但是我需要在子域中访问我的模块,我该怎么做?

我在组件>url管理器中尝试了此方法不起作用。

'seller.dev.com/'=>'seller/index/login',

提前谢谢。

如果您正在使用自定义请求组件和.htaccess。
选项 +关注符号链接 重写引擎打开

# deal with admin first
RewriteCond %{REQUEST_URI} ^/(webxadmin)
RewriteRule ^webxadmin/assets/(.*)$ backend/web/assets/$1 [L]
RewriteRule ^webxadmin/css/(.*)$ backend/web/css/$1 [L]
RewriteCond %{REQUEST_URI} !^/backend/web/(assets|css)/
RewriteCond %{REQUEST_URI} ^/(webxadmin)
RewriteRule ^.*$ backend/web/index.php [L]


RewriteCond %{REQUEST_URI} ^/(assets|css)
RewriteRule ^assets/(.*)$ frontend/web/assets/$1 [L]
RewriteRule ^css/(.*)$ frontend/web/css/$1 [L]
RewriteCond %{REQUEST_URI} !^/(frontend|backend)/web/(assets|css)/
RewriteCond %{REQUEST_URI} !index.php
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ frontend/web/index.php

.htaccess 文件的末尾添加以下行。

RewriteRule ^.*$ backend/web/index.php
<</div> div class="one_answers">

基于主机名匹配规则的正确语法是:

'http://seller.dev.com'=>'seller/index/login',

如果这不起作用,则应在自定义重写逻辑或 Request 类中查找问题。我真的不明白你想在那里做什么。

从 Yii 2.0.11 开始,你也可以使用以下语法来拥有一个适用于 httphttps 的协议相对 URL:

'//seller.dev.com'=>'seller/index/login',

相关内容

最新更新