/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;
}
}