(更新的文件结构)
我有这种情况:
- 具有多个用户(unique_name、database_name、用户、密码、版本)的常规数据库
- 包含不同版本的应用程序的发布文件夹。
- 每个用户都有自己的数据库,从常规数据库中可以找到信息。
如果用户导航到"http://www.app.com/unique_name/",我希望服务器:
- 从常规数据库加载正确的用户信息
- 加载正确版本的应用(以及正确的资产)
- 在应用中使用正确的用户数据库。
用户只能在浏览器中看到"http://www.app.com/unique_name/",并且会有API调用"http://www.app.com/unique_name/api/..."。
文件结构:
/
data/
unique_name/ (files for unique_name)
unique_name2/ (files for unique_name2)
...
releases/
v1.5/
index.php
api/
v2.0/
index.php
api/
使用apache和php解决这个问题的正确方法是什么?
你的问题需要你这边的更多细节,但我能理解的, 在这种情况下,你必须对项目结构非常果断,
使网址看起来像 -> www.app.com/index.php?/unique_name
-
创建一个处理所有请求(登陆)并将unique_name作为参数传递的引导程序文件,您可以使用 .htaccess 文件为此
-
解析 url 并获取第一段,根据参数从常规数据库中获取数据库和版本详细信息并缓存或将其存储在会话(用户数据 + 版本文件夹映射)中。
-
使用 php 加载正确版本的文件系统(可能需要编写路由器类)
www.app.com/api/index.php?/unique_name
src'
api'
index.php
releases'
xxx.xxx'
xxx.xxx'
index.php
就 api 代码而言,我建议将所有与 api 相关的代码放在顶层。您需要编写一些路由器(映射器),这将使资产或文件的绝对路径可用于加载。