针对不同用户的假子域,同时仍然浏览相同的文件夹结构

问题描述 投票:4回答:2

我想为不同的用户创建虚假的子域名以获得更多虚荣,并使用户(在这种情况下是公司)感觉他们处于更加孤立的环境中。

为了可维护性,对我来说重要的是所有用户仍然浏览相同的文件,以避免在更新代码时为每个用户更新文件。

我的网站有一个公共部分在根,让我们说www.example.com。我希望能够伪造以下类型的子域:

user1.example.com

真正的URL将是www.example.com/member/?user=user1。我希望文件夹结构遵循相同的模式。 www.example.com/member/settings/?user=user1将出现在user1.example.com/settings/等等。

我认为这最好用.htaccess实现,不是吗?什么是适当的.htaccess代码?

谢谢!

.htaccess subdomain wildcard-subdomain
2个回答
2
投票

基于你在这里提供的信息,有点.htaccess没有经过测试,但可以完成这项工作。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?example.com$ [NC]
RewriteCond %{QUERY_STRING} ^user=(.*)$
RewriteRule ^(.*)$ http://%1.example.com/$2? [R=302,L]

一旦发现它工作正常,请将302替换为301

注意:请务必注意,您需要添加子域通配符


0
投票

最后,这很容易解决!然而,使用.htaccess并没有按照我的预期方式解决。我用一个名为wildcard subdomain的东西解决了它。

注册新子域时,请在域前缀中输入*,例如* .example.com。将在您的服务器上创建通配符子域的文件夹,例如_wildcard_.example.com。每当您访问site1.example.com,fakesub.example.com等时,访问者的浏览器将读取wildcard.example.com文件夹中的文件。

这一切的美妙之处在于,如果我创建一个我想要使用的特定子域,例如forum.example.com,这个真正的子域将优先于通配符子域,并且将从该子域的文件夹中获取文件,而不是来自wildcard子域文件夹。

我使用PHP并且需要知道子域以获取当前用户的相应数据库。为此,我使用以下代码:

$subdomain = explode('.', $_SERVER['HTTP_HOST'])[0]

使用通配符SSL证书,我将所有这些子域都安全。

© www.soinside.com 2019 - 2024. All rights reserved.