将动态子域名添加到我的网络服务器?

将动态子域名添加到我的网络服务器?

我正在尝试向我的网络服务器添加通配符子域名系统,但它仍然不起作用,

以下是我采取的步骤:

vhost.conf我在目录 中 创建了一个新文件var/www/vhosts/www.example.com/conf/vhost.conf

我把:

ServerAlias *.domain.com 

其次,我在 Plesk 上创建了一个新的 DNS 通配符:

CNAME *domain.com example.com

然后我编辑了我的.htaccess文件:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(^.*)\.example.com
RewriteRule (.*)  user.php?user=%1

通常我的 URL 是:

http://www.example.com/user.php?user=solomon

但现在,我想要的是这样的:

http://solomon.example.com

但我采取的步骤仍然不起作用。

:)) 这里发生了什么事?

答案1

通配符域的正确 CNAME 定义应如下:

*.example.com CNAME example.com.

因此在 plesk 中您可以尝试编辑记录并在通配符后添加该点。

当然,您必须等待一段时间才能完成 DNS 传播,请不要忘记这一点。

您的 htaccess 看起来也有点错误,尽管它应该可以工作,但两次引用字符串的开头有点奇怪,请尝试这个:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com$
RewriteRule .*  user.php?user=%1 [L]

有关 1and1/Plesk 的更多具体信息,请阅读以下教程:http://www.1and1faq.com/forums/archive/index.php/t-602.html

答案2

RewriteEngine on    
RewriteCond %{HTTP_HOST} !^www\.example\.com 
RewriteRule ^(.*)$ http://solomon.example.com [R=permanent,L]

请参考此链接

https://stackoverflow.com/questions/4520140/how-to-redirect-all-urls-to-a-www-subdomain/4520174#4520174

答案3

但我采取的措施仍然没有效果

这没什么帮助——什么没有用?

名称解析了吗?Web 服务器是否响应对域的本地请求?(注意:服务器硬件上的本地接口可能未配置为与公共 IP 相同的地址。)您需要使用 Telnet 之类的工具连接到 IP,然后才能从新主机手动提交 HTTP 请求。Web 服务器是否未按预期区分域?重写规则是否未触发?您提到 Plesk — 暗示这是一项托管服务。您确定mod_rewrite可用吗?您是否已通过相同机制在同一台服务器上设置了命名虚拟主机?您怎么知道只需添加一个新文件var/www/vhosts/www.kornar.com/conf/vhost.conf就足够了?通常我希望重新启动 Web 服务器以激活更改。

答案4

Apache 已经为大规模虚拟主机;我建议您看一下如何进行设置。

相关内容