有些网站有可变前缀。例如:www.example.com/bob_11 显示为 bob_11.example.com。我该怎么做?我假设它是一个子目录,但找不到任何解释如何将其视为子目录的内容。
如果特定的服务器软件是一个因素,我最近设置了一个 Apache 服务器。我发现最接近的是 mod_rewrite,但它显然不能满足我的要求。
寻找有关此问题的帮助非常棘手,因为我非常确定“前缀”这个词不适合我所描述的内容。除了如何操作之外,我所描述的过程应该用什么词来表达?
答案1
您希望为您的网站创建一个子域。您需要在 Apache 上定义一个虚拟主机,并为新子域定义一个新文件夹。然后,您可以使用 mod_rewrite,甚至重定向,在用户访问 www.example.com/bob_11 时将用户移动到您的子域。
您还需要 DNS 条目才能使 URL 在访问者的浏览器中正确显示。
答案2
您所需要的就是虚拟主机,您可以点击此链接了解更多信息...
http://httpd.apache.org/docs/2.2/vhosts/examples.html
最好转到您的域名注册人面板并添加bob_11.example.com
指向A record
您服务器 IP 地址的子域名...
然后在服务器上使用命令行找到httpd.conf:
尝试:
find / -name httpd.conf
- 最有可能的是,您需要 root 访问权限才能从 / dir 执行 find,因此请将 sudo 放在上述命令前面。或者在执行此操作之前以 root 身份登录。
并根据上面链接上的手册配置虚拟主机。
保存httpd.conf后重新启动apache!
答案3
您正在考虑创建子域名。许多现代托管服务提供商会将此作为其后端/控制面板的一部分,因此确切的答案取决于您的托管服务提供商。
答案4
这里有两个问题。听起来您想创建一个基于名称的虚拟主机。您在 Apache 中配置了一个基于名称的虚拟主机。
http://httpd.apache.org/docs/current/vhosts/name-based.html
因此,你会得到类似这样的结果:
NameVirtualHost *:80 (Note NameVirtualHost is deprecated in Apache 2.4 which I've linked above)
<VirtualHost *:80>
ServerName bob_11.example.com
DocumentRoot /www/bob_11
</VirtualHost>
第二个问题是如何配置 DNS 来识别名称或您所说的前缀。最简单的方法是添加一个 CNAME 记录,其中包含您想要的名称并指向现有的 www 名称作为别名。
你的 DNS 应配置如下:
bob_11.example.com. CNAME www.example.com.
www.example.com. A 192.168.1.2