使用虚拟主机将非现有页面重定向到主页,将example.org重定向到.htaccess中的www.example.org

时间:2015-02-23 21:34:08

标签: apache .htaccess mod-rewrite redirect apache2

我正在Ubuntu apache2上测试一些东西。我能够解决个别问题,但是当这些问题结合起来时,它会搞砸并显示出来,这个网页有一个重定向循环“。好的..这是设置。 我的网站是www.example.org和子文件夹www.example.org/kmc。在子文件夹中,我们安装了Joomla CMS。

在.htaccess文件中,我做了两次设置。

1)example.org将转发至www.example.org

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)S http://%{HTTP_HOST}/$1 [R=301,L]

有效。

2)不存在的页面将被转发到主页。

ErrorDocument 404 http://www.example.org

它也有效。

现在我在000-default.conf文件中设置虚拟主机。原因是我想在同一台服务器上使用两个不同的站点。

<VirtualHost *:80>
    DocumentRoot /var/www/html/kmc
    ServerName www.example.org
</VirtualHost>

现在,当我访问example.org时,浏览器会显示&#34;此网页有一个重定向循环&#34;。

1 个答案:

答案 0 :(得分:0)

www规则应该是这样的:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]

您的规则在目标网址中缺少www.