2012-11-14 228 views
1

我在Windows上安装了wampp服务器。在此服务器上,我有多个使用虚拟主机与主域一起运行的子域。一个要求是自动为所有子域实现robots.txt。例如:Apache“别名”不包括某些域

site1.example.com 

site2.example.com 

site3.example.com 

site1.example.net 

site2.example.net 

因此,对于这个在http.conf中我已经写:

Alias /robots.txt D:/wampp/static-files/override-robots.txt 

以上fullfills在example.com & example.net和创建的每个新的子域所有子域的要求会默认情况下有这个robots.txt,并且不必为每个robots.txt放置不同的robots.txt,但问题在于某些主域也位于此服务器上,并且robots.txt也会从上面运行。例如:

www.primarydomain1.com 

www.primardomain2.com 

现在,我想那是什么example.com & example.net的所有子域将拥有的robots.txt自动扣除上述所有主域中运行。可能是Apache Alias不是这样做的最好方式,所以任何关于它的帮助或提示都会非常有帮助。

感谢

回答

2

一些尝试,并运行,我发现了一个解决方案,我认为这可以帮助别人,如果我在这里分享:

基本上,在httpd.conf文件我已经写:

Alias /robots.txt D:/wampp/static-files/override-robots.txt 

所以这将运行的每个域和子域,但它可以被覆盖的特定域/子域定义在虚拟主机文件,即httpd-vhosts.conf,在每个域/子域的虚拟主机容器内。因此,举例来说,如果我要为不同的robots.txt为www.primarydomain1.com:

<VirtualHost 212.212.212.212> 
    DocumentRoot "D:/WebSites-Data/primarydomain1.com" 
    ServerName primarydomain1.com 
    ServerAlias www.primarydomain1.com 
    ErrorLog "logs/primarydomain1.com-error.log" 
    CustomLog "logs/primarydomain1.com-access.log" combined 
    Alias /robots.txt D:/WebSites-Data/primarydomain1.com/this-robots.txt 
</VirtualHost> 
这样

所以,如果有人打www.primarydomain1.com/robots.txt阿帕奇将

的robots.txt服务
D:/WebSites-Data/primarydomain1.com/this-robots.txt 

和其他域/子域这样可防止服务:

Alias /robots.txt D:/wampp/static-files/override-robots.txt 

这也导致了这一事实,我们可以覆盖httpd.conf中特定域的一些设置,如果我们把它定义在虚幻容器中。

上述解决方案对我来说工作正常。如果有这个解决方案的缺点,请与我分享。

谢谢

+0

3年后适合我。谢谢! – resting