假設一個網站有一個後台,假設是 test.com/admim
(test.com是我自己的個人網域,有設定必須有帳密才能登入,所以測試會有測試管理員帳號,正式會有正式管理員帳號),可以新增刪除資料等等後端操作,這個後台裡面都是測試(dev)的資料。
有一天這個網站要prod了,正式網站的域名叫做 abc.com,原本資料庫是讀 dev ,現在變成 prod
test.com/admin -> db:dev
abc.com -> db:prod
那我網址會以什麼入口當作後台?以及後台內如何判斷測試與正式?
因為不太可能用 abc.com/admin 來當正式資料管理後台吧~
我的做法是
無論是測試還正式,後台都是統一入口 test.com/admin
只是裡面可以選擇要撈正式資料還是測試資料,可能利用 $_GET 來判斷 (但用 GET表示每個網址後面都必須要加上這個值...)
我想問大神如果是你們會怎麼做?
我看你的问题好像是因为两个域名都要映射到同一个服务器上的同一套代码,才会产生这些考虑。如果是这样的话,的确需要考虑如何辨别正式/测试环境:
我认为可以通过通过
host
来判断环境,test.com
/abc.com
,这是两个可以获取的值。域名的话,测试可以用
test.com/admin
,正式部署的话,如果abc.com
是专门设置为后台域名则可以直接使用abc.com
,然后在apache/nginx
中设置重写规则/ -> /admin
(具体怎么设置,我也不太清楚 ... 尴尬),也可以统一加/admin
后缀。如果域名不是映射到同一套代码,正式部署建议直接用
abc.com
,apache/nginx
设置重写规则;数据库的话,配置文件里面改一下就好了。