更改网站的前缀?(例如:www.example.com/bob_11 -> bob_11.example.com)

更改网站的前缀?(例如:www.example.com/bob_11 -> bob_11.example.com)

有些网站有可变前缀。例如: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

相关内容