yii2 apache/nginx配置文件

/backend
/fontend
/storage


# ======================= Apache Yii2通用后台  二级域名配置 =================================
.env 配置:
# Urls
# ---------
FRONTEND_URL     = /
BACKEND_URL      = /
STORAGE_URL      = /

    <VirtualHost *:80>
        ServerAdmin webmaster@dummy-host2.example.com
        DocumentRoot "E:\yii2admin\backend\web"
        ServerName admin.yii2.cn
        ErrorLog "logs/yii2.cn-error.log"
        CustomLog "logs/yii2.cn-access.log" common
    </VirtualHost>
    <Directory "E:\yii2admin\backend\web">
        AllowOverride all
        Require all granted
    </Directory>

    <VirtualHost *:80>
        ServerAdmin webmaster@dummy-host2.example.com
        DocumentRoot "E:\yii2admin\frontend\web"
        ServerName  www.yii2.cn
        ErrorLog "logs/yii2.cn-error.log"
        CustomLog "logs/yii2.cn-access.log" common
    </VirtualHost>
    <Directory "E:\yii2admin\frontend\web">
        AllowOverride all
        Require all granted
    </Directory>

    <VirtualHost *:80>
        ServerAdmin webmaster@dummy-host2.example.com
        DocumentRoot "E:\yii2admin\storage\web"
        ServerName  storage.yii2.cn
        ErrorLog "logs/yii2.cn-error.log"
        CustomLog "logs/yii2.cn-access.log" common
    </VirtualHost>
    <Directory "E:\yii2admin\storage\web">
        AllowOverride all
        Require all granted
    </Directory>

    <Directory "E:\yii2admin/frontend/web">
        RewriteEngine on
        # 如果一个目录或一个文件存在,请直接使用请求
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        # 否则去请求 index.php
        RewriteRule . index.php

        Require all granted
    </Directory>
    <Directory "E:\yii2admin/backend/web">
        RewriteEngine on
        # 如果一个目录或一个文件存在,请直接使用请求
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        # 否则去请求 index.php
        RewriteRule . index.php

        Require all granted
    </Directory>
    <Directory "E:\yii2admin/storage/web">
        RewriteEngine on
        # 如果一个目录或一个文件存在,请直接使用请求
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        # 否则去请求 index.php
        RewriteRule . index.php

        Require all granted
    </Directory>

# ======================= Apache Yii2通用后台 单域名配置=================================
.env 配置:
# Urls
# ---------
FRONTEND_URL     = /
BACKEND_URL      = /admin
STORAGE_URL      = /storage/web

<VirtualHost *:80>
    ServerName www.yii2.cn

    RewriteEngine on
    DocumentRoot E:\yii2admin

    # 应用前端主要重写规则
    RewriteCond %{HTTP_HOST} ^www.yii2.cn$ [NC] 
    RewriteCond %{REQUEST_URI} !^/(backend/web|admin|storage/web)
    RewriteRule !^/frontend/web /frontend/web%{REQUEST_URI} [L]

    # 重定向的网页没有一个斜线(注释,如果必要的话)
    #RewriteCond %{REQUEST_URI} ^/admin/$
    #RewriteRule ^(/admin)/ $1 [L,R=301]
    # 禁止斜线重定向
    RewriteCond %{REQUEST_URI} ^/admin$
    RewriteRule ^/admin /backend/web/index.php [L]
    # 后端应用程序的主要重写规则
    RewriteCond %{REQUEST_URI} ^/admin
    RewriteRule ^/admin(.*) /backend/web$1 [L]

    <Directory />
        Options FollowSymLinks
        AllowOverride None
        AddDefaultCharset utf-8
    </Directory>
    <Directory "E:\yii2admin/frontend/web">
        RewriteEngine on
        # 如果一个目录或一个文件存在,请直接使用请求
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        # 否则去请求 index.php
        RewriteRule . index.php

        Require all granted
    </Directory>
    <Directory "E:\yii2admin/backend/web">
        RewriteEngine on
        # 如果一个目录或一个文件存在,请直接使用请求
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        # 否则去请求 index.php
        RewriteRule . index.php

        Require all granted
    </Directory>
    <Directory "E:\yii2admin/storage/web">
        RewriteEngine on
        # 如果一个目录或一个文件存在,请直接使用请求
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        # 否则去请求 index.php
        RewriteRule . index.php

        Require all granted
    </Directory>
    <FilesMatch \.(env|htaccess|htpasswd|svn|git)>
        Require all denied
    </FilesMatch>
</VirtualHost>

# ======================= Apache Yii2通用后台 二级目录配置=================================
yii2admin目录:E:\www\yii2admin

    <VirtualHost *:80>
        ServerAdmin webmaster@dummy-host2.example.com
        DocumentRoot "E:\www"
        ServerName  www.yii.cn
        ErrorLog "logs/yii.cn-error.log"
        CustomLog "logs/yii.cn-access.log" common
    </VirtualHost>
    <Directory "E:\www">
        AllowOverride all
        Require all granted
    </Directory>
    <Directory "E:\www/yii2admin/backend/web">
        RewriteEngine on
        # 如果一个目录或一个文件存在,请直接使用请求
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        # 否则去请求 index.php
        RewriteRule . index.php

        Require all granted
    </Directory>

后台:www.yii.cn/yii2admin/backend/web/
前台:www.yii.cn/yii2admin/frontend/web/

.env 配置:
# Urls
# ---------
FRONTEND_URL     = /yii2admin/frontend/web
BACKEND_URL      = /yii2admin/backend/web
STORAGE_URL      = /yii2admin/storage/web
# ======================= Nginx Yii2通用后台 二级名配置=================================
# 前台
server {
    listen 80;

    root /var/www/frontend/web;
    index index.php index.html;

    server_name www.yii2.cn;

    charset utf-8;

    # location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {
    #    access_log off;
    #    expires max;
    # }

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    client_max_body_size 32m;

    # There is a VirtualBox bug related to sendfile that can lead to
    # corrupted files, if not turned-off
    # sendfile off;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass php-fpm;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}

## 后台 ##
server {
    listen 80;

    root /var/www/backend/web;
    index index.php index.html;

    server_name backend.yii2.cn;

    charset utf-8;

    client_max_body_size 16m;


    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass php-fpm;
        fastcgi_index index.php;
        include fastcgi_params;
    }

}

## 存储 ##
server {
    listen 80;
    server_name storage.yii2.cn;

    root /var/www/storage/web;
    index index.html;
    # expires max;
    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass php-fpm;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}



# ======================= Nginx Yii2通用后台 单域名配置=================================
server {
    charset      utf-8;
    client_max_body_size  32M;

    listen       80; ## listen for ipv4
    #listen       [::]:80 default_server ipv6only=on; ## listen for ipv6

    server_name  www.yii2.cn;

    root  /vagrant/yii2admin;
    index index.php index.html;

    access_log off;
    #access_log   /path/to/logs/advanced.access.log main buffer=50k;
    #error_log    /path/to/logs/advanced.error.log warn;

    # location优先级: (location =) > (location 完整路径) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 部分起始路径) > (/)
    # 前台重写
    location / {
        root /vagrant/yii2admin/frontend/web;
        try_files $uri /frontend/web/index.php?$args;
    }

    # 后台重写
    location /admin {
        alias  /vagrant/yii2admin/backend/web;
        try_files $uri /backend/web/index.php?$args;
    }

    # API重写
    location /api/v {
        alias  /vagrant/yii2admin/api/web;
        #注意:这里不能用try_files,当location /api和目录名称相同时会出现重写错误!
        try_files $uri /api/web/index.php?$args;
        #if (!-f $request_filename){
        #        rewrite ^(.*)$ /api/web/index.php?r=$1 last;
        #}
    }

    # 存储重写,必须存在不然这个目录下的图片都会出问题(都会使用location /这个下面的重写)
    location /storage {
        #由于访问的url用的是storage,文件夹名称用的也是storage,所以这里不能使用alias,要使用root
        root  /vagrant/yii2admin/storage/web;

        rewrite  ^(/storage)/$ $1 permanent;  
        try_files  $uri /storage/web/index.php?$args;
    }
    location ~ \.php$ {  
        include  fastcgi_params;  
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
        try_files  $uri =404;
    }
    #error_page  404 /404.html;

    # 排除文件
    location = /requirements.php {
        deny all;
    }
    location ~ \.(ht|svn|git|env) {
        deny all;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值