1.修改 advanced/backend/config/main.PHP 文件如下:
- return [
- 'homeUrl' => '/admin',
- 'components' => [
- 'request' => [
- 'baseUrl' => '/admin',
- ],
- 'urlManager' => [
- 'enablePrettyUrl' => true,
- 'showScriptName' => false,
- ],
- ],
- ];
2.同样修改 advanced/frontend/config/main.php 文件:
- return [
- 'homeUrl' => '/',
- 'components' => [
- 'request' => [
- 'baseUrl' => '',
- ],
- 'urlManager' => [
- 'enablePrettyUrl' => true,
- 'showScriptName' => false,
- ],
- ],
- ];
3.配置域名解析:
- <VirtualHost *:80>
- ServerName advanced.loc
- ServerAlias www.advanced.loc
- DocumentRoot "/path/to/advanced"
- <Directory "/path/to/advanced">
- AllowOverride All
- </Directory>
- </VirtualHost>
4.新建一个.htaccess文件,写入一下内容。放在项目根目录advacnced下:
- # 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
5.再次新建一个.htaccess文件,写入以下内容,在frontend/web和backend/web下分别放一个。
- # 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
如果服务器是nginx,则更改nginx.cong文件,写入以下内容,具体路径根据自身实际情况进行修改:
- 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;
- }
- }