Yii2 同一域名处理前后台方法

将域名指向项目的根目录www/xxxx项目名/并建立.htaccess文件内容如下

  # prevent directory listings
  Options -Indexes
  # follow symbolic links
  Options FollowSymlinks
  RewriteEngine on

  RewriteCond %{REQUEST_URI} ^/admin/$
  RewriteRule ^(admin)/$ /$1 [R=301,L]
  RewriteCond %{REQUEST_URI} ^/admin
  RewriteRule ^admin(/.+)?$ /backend/web/$1 [L,PT]
  
  RewriteCond %{REQUEST_URI} ^.*$
  RewriteRule ^(.*)$ /frontend/web/$1
复制代码

在backend\config\main.php修改

  'homeUrl' => '/admin',
  //在components下添加
  'request' => [
      'baseUrl' => '/admin',
  ],
复制代码

在frontend/config/main.php修改

  'homeUrl' => '/',
  //在components下添加
  'request' => [
      'baseUrl' => '',
  ],
复制代码

在frontend/web和backend/web添加伪静态文件 .htaccess

  # use mod_rewrite for pretty URL support
  RewriteEngine on
  # if a directory or a file exists, use the request directly
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  # otherwise forward the request to index.php
  RewriteRule . index.php
复制代码

###开启url美化(在common下的main.php中配置就不用在前后台配置了,看你心情)

     'urlManager' => [
          'enablePrettyUrl' => true,
          'showScriptName' => false,
          'rules' => [
          ],
      ],
复制代码

如果是nginx,看情况修改

  server {
      charset      utf-8;
      client_max_body_size  200M;
  
      listen       80; ## listen for ipv4
      #listen       [::]:80 default_server ipv6only=on; ## listen for ipv6
  
      server_name  advanced.loc;
      root         /path/to/advanced;
  
      access_log   /path/to/logs/advanced.access.log main buffer=50k;
      error_log    /path/to/logs/advanced.error.log warn;
  
      location / {
          root  /path/to/advanced/frontend/web;
  
          try_files  $uri /frontend/web/index.php?$args;
  
          # avoiding processing of calls to non-existing static files by Yii
          location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
              access_log  off;
              expires  360d;
  
              try_files  $uri =404;
          }
      }
  
      location /admin {
          alias  /path/to/advanced/backend/web;
  
          rewrite  ^(/admin)/$ $1 permanent;
          try_files  $uri /backend/web/index.php?$args;
      }
  
      # avoiding processing of calls to non-existing static files by Yii
      location ~ ^/admin/(.+\.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar))$ {
          access_log  off;
          expires  360d;
  
          rewrite  ^/admin/(.+)$ /backend/web/$1 break;
          rewrite  ^/admin/(.+)/(.+)$ /backend/web/$1/$2 break;
          try_files  $uri =404;
      }
  
      location ~ \.php$ {
          include  fastcgi_params;
          # check your /etc/php5/fpm/pool.d/www.conf to see if PHP-FPM is listening on a socket or port
          fastcgi_pass  unix:/var/run/php5-fpm.sock; ## listen for socket
          #fastcgi_pass  127.0.0.1:9000; ## listen for port
          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) {
          deny all;
      }
  }
复制代码

转载于:https://juejin.im/post/5aa7704c6fb9a028d140c4e2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值