Yii2項目高級模版 三個模塊在同一個目錄下的重定向配置


最近做項目用到的,非常好用。

修改 advanced/backend/config/main.PHP 文件如下:

return [ 'homeUrl' => '/admin', 'components' => [ 'request' => [ 'baseUrl' => '/admin', ], 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, ], ], ];
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

同樣修改 advanced/frontend/config/main.php 文件:

return [ 'homeUrl' => '/', 'components' => [ 'request' => [ 'baseUrl' => '', ], 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, ], ], ];
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

接着設置服務器, 這里先以 apache 為例.
首先設置一下虛擬主機:

<VirtualHost *:80> ServerName advanced.loc ServerAlias www.advanced.loc DocumentRoot "/path/to/advanced" <Directory "/path/to/advanced"> AllowOverride All </Directory> </VirtualHost>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

然后在站點根目錄下創建 .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 然后在 advanced/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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

然后在 advanced/frontend/web 目錄中復制一份上面的.htaccess 文件

Nginx 下的環境配置
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; } }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM