.htaccess 在Apache中重写vHost的URL。[允许重写和修改已选中]

.htaccess 在Apache中重写vHost的URL。[允许重写和修改已选中],.htaccess,mod-rewrite,apache2,no-www,.htaccess,Mod Rewrite,Apache2,No Www,在我的域中,我无法将带有www的规范URL重写为非www。 如果我尝试www.example.com,我总是得到404。 以下是有关apache2配置的所有信息 这就是我检查过的全部内容: /etc/apache2/sites-enabled/000-default.conf 服务器管理员info@example.com ServerName example.com DocumentRoot/var/www/example.com 允许超越所有 选项+FollowSymLinks 重新启动

在我的域中,我无法将带有www的规范URL重写为非www。 如果我尝试www.example.com,我总是得到404。 以下是有关apache2配置的所有信息

这就是我检查过的全部内容:

/etc/apache2/sites-enabled/000-default.conf

服务器管理员info@example.com
ServerName example.com
DocumentRoot/var/www/example.com
允许超越所有
选项+FollowSymLinks
重新启动发动机
重写cond%{HTTP_HOST}^www.example.com[NC]
重写规则^(.*)$http://example.com/$1[L,R=301]
ErrorLog${APACHE_LOG_DIR}/error.LOG
CustomLog${APACHE\u LOG\u DIR}/access.LOG组合

[已解决]

我刚刚在虚拟主机定义中添加了alias子句,并在DNS区域中创建了CNAME记录www.example.com

ServerName example.com
ServerAlias www.example.com

你确定问题是你所想的吗?毕竟,您可能也有一些使用url的源代码。所以,我想您应该检查htaccess和源代码是否存在潜在问题。另外,请看一下重写规则。顺便说一句,Allowoverride与您的配置重写规则没有关系,因为您在配置中使用的不是.htaccess,而是rewrite。因此,为了防止不必要的性能损失,请将其关闭<代码>允许超越无。配置更改后是否重新启动了apache?我尝试了.htaccess,每次更改后都重新启动了apache。