这实际上不是一个编程问题,而更多的是有关我可以通过视觉改变的设置。
我已经购买了一个域名,并且想知道如何让它工作,使得除了我已经设置的内容(例如 pop.example.com)之外的所有内容都被转发到 www.example.com(或 *.example.com)。
像这样的东西:
- pop.example.com
- ftp.example.com
- my.example.com
转到相应的 URL,但是:
- idontknowwhattheurlwas.example.com
- ivemistypedsomething.example.com
- bla.example.com
- 123.example.com
是 www.example.com 的别名。
在 DNS 配置中添加规则的选项包括:
- A
- 高级
- 墨西哥
- TXT
- 别名记录
- 服务车辆
或者也许使用 .htaccess 来做到这一点更好?如果是这样,我应该如何配置它?
答案1
您需要两者:
在 DNS 区域设置中输入(最后一个,最好的)
*.your_domain.foo. IN A 999.999.999.999 # correct this csi-like ip
域名中的最后一个点非常重要。
这会将 any.your_domain.foo 与您的 IP 匹配。您可以在之前放置其他子域/ip 的其他条目。
在 apache / 其他 Web 服务器中,你必须设置一个 vhost 或其他东西来处理所有请求,并将 ServerAlias / ServerName 设置为
ServerAlias *.your_domain.foo
再次将此 Vhost 放在最后,在默认 Vhost 之前定义 your_domain.foo 中任何现有的 Vhost。
Apache 使用 ascii 排序方案加载配置文件,因此将其放在一个099_default
文件中,并在前面添加其他内容050_
就你的情况而言,DNS 应该允许你使用*.yourdomain.foo.
区域内定义,我认为你可以使用 mod_rewrite(如果已启用)来存档 apache 部分。我认为有一些方法可以使用变量SERVER_NAME
作为条件的重写来模拟虚拟主机。检查http://httpd.apache.org/docs/2.3/rewrite/vhosts.html。我还没试过。
答案2
您可以在 DNS 中执行此操作。如果您有一个健全的(类似绑定的)DNS服务器,则需要将类似以下内容添加到区域的配置中:
server.example.com. A 192.168.1.1
*.example.com. CNAME server.example.com.
它为通配符创建一个别名并将其指向服务器的地址。您也可以直接执行此操作:
*.example.com. A 192.168.1.1
但出于管理原因,第一种解决方案通常更好。完成此操作后,您将创建一个镜像 www.example.com 主机的万能虚拟主机。
答案3
使用星号:
*.example.com CNAME www.example.com www.example.com A 192.168.1.5
答案4
它的名字是 jocker。在您的 DNS 配置中输入您想要的所有名称,然后添加以下行
* CNAME www.example.com
所有未知名称将被 CNAMED 为 www.example.com