我想我的EC2实例公共URL的子域指向我的机器上的不同文档树,所以foo.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com有一个单独的DocumentRoot到bar.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com 我的AWS EC2实例具有弹性IP和标准的Amazon Public URL: http://ec2-012-345-678-901.eu-west-1.compute.amazonaws.com 我可以访问该URL,并看到我的Hello Worldtesting页面。 我build立了两个VirtualHosts。 <VirtualHost *:80> DocumentRoot /var/www/foo/public ServerName foo.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com ServerAlias ec2-012-345-678-901.eu-west-1.compute.amazonaws.com </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www/bar/public ServerName bar.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com </VirtualHost> 在AWS Route 53中,我设置了一个托pipe区域,其域名为ec2-012-345-678-901.eu-west-1.compute.amazonaws.com 在logging集中,我添加了两条CNAMElogging: 1) 名称:foo.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com TTL:60 价值:ec2-012-345-678-901.eu-west-1.compute.amazonaws.com 路由策略:简单 别名:不 2) 名称:bar.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com TTL:60 价值:ec2-012-345-678-901.eu-west-1.compute.amazonaws.com 路由策略:简单 别名:不 我的浏览器找不到在虚拟主机中定义的任何一个URL。 我正在使用OpenDNS,但我可以SSH到其他几台机器,尝试curl和wget,总是收到错误“名称或服务未知”或“无法parsing主机”。 我今天一直在玩这些设置,但是我还记得,这正是我24小时前的设置。 我需要做些什么来让我的虚拟主机解决我所定义的目录? 注意:我在RHEL上启用了SELinux。 我不认为这是相关的,但这已经是一些问题的原因。 干杯,
所以我有一个服务器上的多个IP和每个IP我有一个SSL网站configuration。 这工作正常。 但是,我服务于主IP上的一些非SSL站点。 当用户尝试访问其中一个非HTTPS网站的https版本时,会发生此问题。 他们将获得主要SSL网站的证书,然后如果他们接受,他们将被转发到https网站。 什么是处理这个问题的最好方法? 我试图设置一个Apache默认SSL主机来捕获这些其他请求,但它似乎并没有工作。 也许一些redirect逻辑转发请求不是默认的ssl域到所请求的站点的非https版本? 任何想法都表示赞赏。
我是新的apache2和virtualHosts和所有这些东西,我试图设置多个子域,每个在一个文件中。 例如,我会 quentin-dommerc.com网站上的文件可用: <VirtualHost quentin-dommerc.com:80> DocumentRoot /var/www/ ServerName quentin-dommerc.com </VirtualHost> 和en.quentin-dommerc.com文件在站点可用: <VirtualHost en.quentin-dommerc.com:80> DocumentRoot /var/www/en/ ServerName en.quentin-dommerc.com </VirtualHost> 但是,无论我去哪个子域,我总是在quentin-dommerc.com 🙁 请注意,我已经a2ensite我的文件,他们很好,在网站启用。 我也重新加载/重新启动apache2。 我的CNAME也被设置。
我在CentOS 6上有一个Parallels Power Panel虚拟专用服务器。默认的Apache虚拟主机(使用IP访问)没有任何问题。 现在我使用Plesk创build了一个新域,并将这些文件复制到虚拟主机目录中。 不幸的是,PHP脚本不起作用 – 你可以访问它们,但是它们不会被预置。 由于默认虚拟主机仍在工作,PHP模块正在工作。 我试图修改httpd.conf(这里是完整的文件 )添加NameVirtualHost指令和VirtualHost部分没有成功。 这是我添加的部分: NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin admin@###.com DocumentRoot /var/www/vhosts/###.com/httpdocs/ ServerName www.###.com ServerAlias ###.com ErrorLog /var/log/httpd/###.com/error.log CustomLog /var/log/httpd/###.com/access.log common <Directory "/var/www/vhosts/###.com/httpdocs/"> Options Indexes FollowSymLinks Includes MultiViews ExecCGI AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> 这是我的php.conf(在conf.d中): <IfModule prefork.c> LoadModule php5_module modules/libphp5.so </IfModule> <IfModule worker.c> […]
在我的生产服务器上,事情没有问题:在我的.htaccess文件中,PHP扩展删除和尾部的斜杠规则已经就位。 但在当地,这是行不通的(好,部分,无论如何)。 我正在运行Apache2虚拟主机的网站。 在这种情况下,我决定不使用.htaccess文件,而只是将规则添加到httpd-vhosts.conf文件中,我听说如果可能在服务器上,这是更好的方法。 虚拟主机正在工作,我用于我的网站的URL是这样的: devserver:9090 这是我的httpd-vhosts.conf文件: NameVirtualHost *:9090 # for stuff other than this site <VirtualHost *:9090> ServerAdmin admin@localhost DocumentRoot "/opt/lampstack/apache2/htdocs" ServerName localhost </VirtualHost> # for site in question <VirtualHost *:9090> ServerAdmin admin@localhost DocumentRoot "/opt/lampstack/apache2/htdocs/devserver" ServerName devserver <Directory "/opt/lampstack/apache2/htdocs/devserver"> Options Indexes FollowSymLinks Includes AllowOverride None Order allow,deny Allow from all </Directory> <IfModule rewrite_module> RewriteEngine […]
我已经为我的网站安装了一个SSL证书,然而,5个不同的域都指向同一个主机,如果用户被导向https://(the other four)他们会得到一个很大的红色屏幕。 如果我只有一个虚拟主机似乎是全部,这是我不想要的。 我试图让另一个虚拟主机来抓住未经authentication的域名: NameVirtualHost *:443 <VirtualHost *:443> ServerName example2.com ServerAlias example3.com DocumentRoot /srv/deadwww/ # contains nothing of consequence </VirtualHost> <VirtualHost *:443> ServerName example.com SSLEngine on SSLCertificateFile /path/to/certs/example.com.crt … 但是Apache甚至不会启动,咆哮着: [error] Server should be SSL-aware but has no certificate configured 所以,如果我只有一个VirtualHost条目,那么它就会捕获所有的名字,并且大部分都会失败,如果我在那之前尝试捕获这些坏名字,我不能这样做,因为Apache不会让我。 我如何解决这个问题?
是否有可能根据时间使虚拟主机可用? 在没有使用外部命令的情况下,可以直接在httpd.conf文件中完成configuration吗?
您可以访问186.215.155.54,0xBAD79B36或3134692150上的谷歌(请记住,如果你想尝试使用http://)。 浏览器如何处理基本转换? 有没有什么办法让NginX根据请求的方式从同一个IP提供不同的页面? 我知道这似乎是无用的,我可能应该使用域名/子域来做到这一点,但它可能是一个复活节彩蛋很好的伎俩。
目前我有2个VirtualHosts: <VirtualHost *:80> ServerName *.*.comp1.office1.lan VirtualDocumentRoot /var/www/%-4/%-5/ UseCanonicalName Off <Directory /var/www/> Options Indexes FollowSymLinks -MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> <VirtualHost *:80> ServerName *.comp1.office1.lan VirtualDocumentRoot /var/www/%-4/ UseCanonicalName Off <Directory /var/www/> Options Indexes FollowSymLinks -MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> 像folder.site.comp1.office1.lan resolvs这样的域( /var/www/site/folder/ )。 但在请求site.comp1.office1.lan我recive 404错误。 而Apache会logging下这一行: [time…] […]
我想了解如何设置httpd.conf和httpd-vhosts.conf文件。 我想有一个本地设置,在Windows 7上使用Wampserver,这样我就可以添加一个新的项目,只需要添加一个新的目录和一个快速编辑的hosts文件。 我希望它至less可以用于以下通用域格式:domain.com,www.domain.com,sub.domain.com和www.sub.domain.com。 以下是我到目前为止。 它似乎工作,但我只是想可能有一个更好的,可能更简洁的方式: NameVirtualHost *:80 <Directory "C:/wamp/www/%0/public_HTML"> Options Indexes FollowSymLinks Includes AllowOverride All Order allow,deny Allow from all </Directory> <VirtualHost *:80> VirtualDocumentRoot "C:/wamp/www/%0/public_HTML" </VirtualHost> <VirtualHost *:80> ServerAlias www.*.*.com VirtualDocumentRoot "C:/wamp/www/%3+/public_HTML/%2" </VirtualHost> <VirtualHost *:80> ServerAlias www.*.com VirtualDocumentRoot "C:/wamp/www/%2+/public_HTML" </VirtualHost> <VirtualHost *:80> ServerAlias *.*.com VirtualDocumentRoot "C:/wamp/www/%2+/public_HTML/%1" </VirtualHost> 我的文件夹结构如下:C:/ wamp / www /(project)/ public_HTML /(作为sub.domain.com的子部分命名的文件夹) […]