使用虚拟主机将不存在的页面重定向到主页,并将example.org重定向到.htaccess中的www.example.



我正在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时,浏览器显示"此网页有一个重定向循环"。

www规则应该是这样的:

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

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

相关内容

最新更新