我试图添加通配符子域系统到我的networking服务器,但它仍然无法正常工作,
这些是我采取的步骤:
我在目录var/www/vhosts/www.example.com/conf/vhost.conf
了一个新文件var/www/vhosts/www.example.com/conf/vhost.conf
。
我说:
ServerAlias *.domain.com
其次,我在Plesk上创build了一个新的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
但是我采取的步骤仍然不起作用。
:)) 这里发生了什么事?
通配符域的适当的CNAME定义应该是这样的:
*.example.com CNAME example.com.
因此,在plesk中,您可以尝试编辑logging并在通配符之后添加该点。
当然,你必须等待DNS传播发生,不要忘了。
你的htaccess也看起来有点不对,虽然它应该工作,两次提到string的开始有点奇怪,试试这个:
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
RewriteEngine on RewriteCond %{HTTP_HOST} !^www\.example\.com RewriteRule ^(.*)$ http://solomon.example.com [R=permanent,L]
请参考这个链接
但是我采取的步骤仍然不起作用
这不是很有帮助 – 什么都行不通?
名字解决了吗? Web服务器是否响应域的本地请求? (注意,服务器硬件上的本地接口可能没有configuration为与公共IP地址相同的地址)。在从新主机手动提交HTTP请求之前,您需要使用类似Telnet的连接来连接到IP。 Web服务器是否按预期不区分域? 重写规则是否不被触发? 你提到Plesk–暗示这是一个托pipe服务。 你确定mod_rewrite
可用吗? 你是否使用相同的机制在相同的服务器上设置了命名的虚拟主机? 你怎么知道只需在var/www/vhosts/www.kornar.com/conf/vhost.conf
添加一个新文件就可以了? 通常我会希望重新启动Web服务器以使更改生效。
Apache已经对大量虚拟化有了很好的支持; 我build议你看看如何设置。