使用virtualhost无法正常工作,从非www域名重定向到www

时间:2013-12-20 02:26:03

标签: linux apache redirect virtualhost linode

我遇到了将http://domain.co.uk重定向到http://www.domain.co.uk的问题。我很擅长使用apache和linux,所以这就是我到目前为止所做的。希望有一个明显的错误可以轻松解决。

在我试图让重定向工作时,我发现了一些教程,说我应该通过虚拟主机文件来完成,所以我编辑了我最初为网站设置的现有虚拟主机文件

/etc/apache2/sites-available/domain.co.uk

我在这个文件的顶部添加了一个新块,所以它现在看起来像这样:

<VirtualHost *:80>
    ServerName domain.co.uk
    Redirect permanent / http://www.domain.co.uk/
</VirtualHost>
<VirtualHost *:80>
  # Admin email, Server Name (domain name), and any aliases
  ServerAdmin admin@domain.co.uk
  ServerName  www.domain.co.uk
  ServerAlias domain.co.uk

  # Index file and Document Root (where the public files are located)
  DirectoryIndex index.html index.php
  DocumentRoot /home/simon/public/domain.co.uk/public/

  # Log file locations
  LogLevel warn
  ErrorLog  /home/simon/public/domain.co.uk/log/error.log
  CustomLog /home/simon/public/domain.co.uk/log/access.log combined
</VirtualHost>

编辑完这个文件后,我重新启动了Apache并试用了该网站,但是http://domain.co.uk给了我“无法打开页面 - 无法访问服务器”。 http://www.domain.co.uk仍然正常。

这是<virtualhost>阻止的正确位置吗?我已经看到一些提到将虚拟主机信息放在httpd.conf文件中,但我无法在我的apache安装中找到此文件。

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

尝试这个并重启Apache

<VirtualHost *:80>
    ServerName domain.co.uk
    ServerAlias *.domain.co.uk
    RedirectMatch permanent /(.*) http://www.domain.co.uk/$1
  </VirtualHost>