从Apache虚拟主机中提取唯一的域名和文档根目录

博格丹

我有一个看起来有点像这样的Apache虚拟主机:

<VirtualHost *:80>
ServerName aaaaaa.com
ServerAlias www.aaaaaa.com upload.aaaaaa.com publisher.aaaaaa.com
ServerAlias aaaaaa.no upload.aaaaaa.no www.aaaaaa.no publisher.aaaaaa.no
ServerAlias bbbbbb.no www.bbbbbb.no upload.bbbbbb.no publisher.bbbbbb.no
ServerAlias cccccc.live upload.cccccc.live www.cccccc.live publisher.cccccc.live
ServerAlias dddddd.com *.dddddd.com
ServerAlias aaaaaa.cccccc.live *.aaaaaa.cccccc.live
ServerAlias eeeeee.com *.eeeeee.com
ServerAlias ffffff.com *.ffffff.com
ServerAlias aaaaaa-com.bbbbbb.no

ServerAdmin [email protected]

ErrorLog /var/log/apache2/aaaaaa.com-error.log
CustomLog /var/log/apache2/aaaaaa.com-access.log combined
ServerSignature Off

<IfModule mod_php5.c>
    AddType application/x-httpd-php .php .phtml .php3
    AddType application/x-httpd-php-source .phps
</IfModule>

DocumentRoot /var/www/html/aaaaaa.com/current/www/
<Directory /var/www/html/aaaaaa.com/current>
    AllowOverride all
</Directory>

Alias  /oc-publisher-framework /var/www/releases/oc-publisher-framework-www/

    # Fake https to become on for Cloudflare special headers.
    SetEnvIf X-Forwarded-Proto https HTTPS=on
    SetEnvIf CF-Visitor {"scheme":"https"} HTTPS=on
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost _default_:443>

ServerName aaaaaa.com
ServerAlias aaaaaa.no
ServerAlias www.aaaaaa.no
ServerAlias bbbbbb.no
ServerAlias www.bbbbbb.no
ServerAlias cccccc.live
ServerAlias www.cccccc.live publisher.cccccc.live
ServerAlias dddddd.com
ServerAlias www.dddddd.com
ServerAlias www.aaaaaa.com
ServerAlias gc-aaaaaa.aaaaaa.com
ServerAlias www.gc-aaaaaa.aaaaaa.com
ServerAlias aaaaaa.cccccc.live
ServerAlias www.aaaaaa.cccccc.live
ServerAlias eeeeee.com www.eeeeee.com

    ServerAdmin [email protected]

    ErrorLog /var/log/apache2/aaaaaa.com-error.log
    CustomLog /var/log/apache2/aaaaaa.com-access.log combined
    ServerSignature Off

    <IfModule mod_php5.c>
      AddType application/x-httpd-php .php .phtml .php3
      AddType application/x-httpd-php-source .phps
    </IfModule>

    DocumentRoot /var/www/html/aaaaaa.com/current/www/
    <Directory /var/www/html/aaaaaa.com/current>
      AllowOverride all
    </Directory>

    Alias  /oc-publisher-framework /var/www/html/releases/oc-publisher-framework-www/

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/bbbbbb.no.crt
    SSLCertificateKeyFile /etc/apache2/ssl/bbbbbb.no.key.txt
    <FilesMatch "\.(cgi|shtml|phtml|php)$">
            SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /usr/lib/cgi-bin>
            SSLOptions +StdEnvVars
    </Directory>
    BrowserMatch "MSIE [2-6]" \
            nokeepalive ssl-unclean-shutdown \
            downgrade-1.0 force-response-1.0
    BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>

我想从此处提取唯一的域名和文档根目录,这样它会输出如下内容:

/var/www/html/aaaaaa.com/current/www/ - aaaaaa.com www.aaaaaa.com upload.aaaaaa.com publisher.aaaaaa.com aaaaaa.no upload.aaaaaa.no www.aaaaaa.no publisher.aaaaaa.no bbbbbb.no www.bbbbbb.no upload.bbbbbb.no publisher.bbbbbb.no ...

如何使用AWK,BASH或Python完成此操作?

阿努巴瓦

您可以使用awk

awk '$1 ~ /^(ServerName|ServerAlias)/ {
   for (i=2; i<=NF; i++)
      hosts[$i]
}
$1 == "DocumentRoot" {
   dr = $2
}
END {
  printf "%s -", dr
  for (i in hosts)
     printf " %s", i
  print ""
}' httpd.conf

/var/www/html/aaaaaa.com/current/www/ - www.aaaaaa.cccccc.live dddddd.com www.cccccc.live www.eeeeee.com *.ffffff.com upload.cccccc.live www.bbbbbb.no bbbbbb.no ffffff.com eeeeee.com upload.aaaaaa.no gc-aaaaaa.aaaaaa.com publisher.aaaaaa.no publisher.cccccc.live upload.aaaaaa.com www.aaaaaa.com aaaaaa-com.bbbbbb.no www.gc-aaaaaa.aaaaaa.com aaaaaa.cccccc.live www.aaaaaa.no aaaaaa.no publisher.aaaaaa.com aaaaaa.com www.dddddd.com *.eeeeee.com *.aaaaaa.cccccc.live *.dddddd.com cccccc.live upload.bbbbbb.no publisher.bbbbbb.no

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Apache虚拟主机中提取唯一的域名和文档根目录

来自分类Dev

Apache HTTPD虚拟主机,文档根目录中的%1 +是什么?

来自分类Dev

Apache通用文档根目录,不同的虚拟主机,不同的可访问文件

来自分类Dev

没有域名的Apache虚拟主机

来自分类Dev

Apache虚拟主机混合IP和域名

来自分类Dev

Apache 2虚拟主机允许从目录中提供所有文件

来自分类Dev

不同子目录的不同虚拟主机(Apache)?

来自分类Dev

没有真实域名的虚拟主机

来自分类Dev

虚拟主机和域名列表

来自分类Dev

创建了两个虚拟主机到一个目录根目录,但是我需要从虚拟主机传递变量/参数来访问两个不同的页面

来自分类Dev

Apache虚拟主机别名

来自分类Dev

Apache虚拟主机问题

来自分类Dev

apache httpd基于名称的虚拟主机:使用ip还是域名?

来自分类Dev

Windows 10 Apache虚拟主机配置

来自分类Dev

CentOS 6.5 + Apache虚拟主机

来自分类Dev

Apache上的多个SSL虚拟主机

来自分类Dev

apache虚拟主机获取404

来自分类Dev

Apache非虚拟主机重定向

来自分类Dev

Apache虚拟主机无法访问

来自分类Dev

Apache虚拟主机不起作用

来自分类Dev

Apache虚拟主机配置错误

来自分类Dev

Apache虚拟主机指向错误的DocumentRoot

来自分类Dev

Apache虚拟主机无法正常工作

来自分类Dev

apache虚拟主机获取404

来自分类Dev

如何限制apache虚拟主机?

来自分类Dev

虚拟主机破坏了Apache

来自分类Dev

Apache前缀到虚拟主机的路径

来自分类Dev

apache虚拟主机不起作用

来自分类Dev

Windows 10 Apache虚拟主机配置