我想为不同的用户创建虚假的子域,以提高效率,并使该用户(在本例中为公司)感到自己处于更孤立的环境中。
出于可维护性的考虑,对我来说重要的是所有用户仍应浏览相同的文件,以避免在更新代码时必须为存在的每个用户更新文件。
我的网站的根源是公共部分,例如Private Sub Workbook_Open()
Sheet1.Activate
Call Worksheet_Change(Target)
End Sub
。我希望能够伪造以下类型的子域:
www.example.com
真实URL为user1.example.com
。我希望文件夹结构遵循相同的模式。 www.example.com/member/?user=user1
将显示为www.example.com/member/settings/?user=user1
,依此类推。
我认为最好通过user1.example.com/settings/
来实现,不是吗?
正确的.htaccess
代码是什么?
谢谢!
答案 0 :(得分: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
注意:请务必注意,您需要添加子域通配符
答案 1 :(得分:0)
最后,这非常容易解决!但是,使用.htaccess并没有解决我最初期望的方式。我用通配符子域解决了这个问题。
注册新的子域时,请在域前缀中输入*,例如* .example.com。通配符子域的文件夹将在您的服务器上创建,例如 _wildcard_.example.com 。每当您访问 site1.example.com , fakesub.example.com 等时,访问者的浏览器都会读取通配符中的文件。 example.com文件夹。
这一切的好处在于,如果我创建一个要使用的特定子域,例如 forum.example.com ,则该实际子域将比通配符子域和文件具有更高的优先级。将从该子域的文件夹中获取,而不是从通配符子域文件夹中获取。
我使用PHP,需要了解子域才能为当前用户获取适当的数据库。为此,我使用以下代码:
$subdomain = explode('.', $_SERVER['HTTP_HOST'])[0]
使用通配符SSL证书,我可以保护所有这些子域的安全。