基于会话变量和数据库查询的php虚拟目录
在我的网站中,我有三种类型的用户,比如说A、B和C。他们访问的网页大部分是不同的,但仍然很少有重叠。我制作了如下目录。喜欢基于会话变量和数据库查询的php虚拟目录,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,在我的网站中,我有三种类型的用户,比如说A、B和C。他们访问的网页大部分是不同的,但仍然很少有重叠。我制作了如下目录。喜欢 Root A A1 A2 A3 K1 K2 B B1 B2 K1 C C1 C2 C3 K1 K2 所以这里的文件K1和K2有共同的名称,尽管
Root
A
A1
A2
A3
K1
K2
B
B1
B2
K1
C
C1
C2
C3
K1
K2
所以这里的文件K1和K2有共同的名称,尽管内容不相似。当一类用户登录时,他可以浏览domain.com/A/A1/
domain.com/A/K2/
等。B类用户可以浏览domain.com/B/B1
等
我想要的是,当一类用户登录时,他浏览domain.com/A1/
domain.com/K1
等,而不使用A
B
等。现在为了防止文件的清晰性,我不能将所有文件混合在一起,因此需要将它们保持在与上面描述的相同的目录配置中。那怎么办呢?怎么办
mod_rewrite有助于创建虚拟目录,但在这种情况下它不会有帮助,因为我们需要PHP会话变量和数据库查询来选择如何显示,以及让用户能够访问哪些内容
我可能不太清楚,所以请在理解问题时询问您遇到的任何问题。
谢谢。您必须做两件事:获取请求的URI,获取用户类型。然后你就知道该服务什么目录了。htaccess和mod_rewrite不足以完成第二件事,因为它无法访问数据库 您可以使用以下方法将所有内容路由到某种php控制器中:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /user_type.php?request=$1 [L]
然后,user\u type.php
将从request
$\u GET变量中知道第一件事,然后它可以通过获取用户类型来执行第二件事,然后根据用户类型返回请求。比如:
$file_to_serve = $_GET['request'];
if($user_type == 'A')
$file_to_serve = 'A/' . $file_to_serve;
“用户类型”存储在哪里?在会话cookie中?在活动会话的数据库中?查询字符串参数?会话变量存储用户的UID,根据UID,我们可以通过从组表查询来知道用户的类型。谢谢。我不知道。htaccess可以获取一个php脚本。如何发送回.htaccess<代码>将$file\u返回给\u服务代码>?我明天亲自退房。现在这里已经很晚了。@k_程序员不需要将其发送回htaccess,php脚本只需将
$file_的内容输出到
并由浏览器呈现。我试过这段代码。浏览器没有输出,所以我添加了include($file\u to\u service)代码>但现在我得到403禁止<代码>无法打开流:在第16行的C:\wamp\www\wintern\user\u type.php中,权限被拒绝
@k\u程序员您可能需要在路径C:\\wamp\\www\\wintern\`中包含到
$file\u的开头`