Html http://www. 到http://redirect根本不起作用

Html http://www. 到http://redirect根本不起作用,html,apache,.htaccess,redirect,Html,Apache,.htaccess,Redirect,我想要一个相当简单的功能,我想我的网站工作时,有人把一个www。在我的域名。我的首选是重定向所有http://www.请求http://,无需任何复杂操作 我尝试了两种方法来解决这个问题,但都没有达到预期效果。第一个选项是简单地在站点的.htaccess中添加以下“重写引擎”命令(为了记录在案,我确认该命令正在工作) 我尝试了这段代码的许多变体,但没有一个能起作用。即使在重置浏览器缓存、通过Tor访问之后,如果我以www.前缀进入我的网站,它也不会加载,Firefox会给我一个“服务器未找到”错

我想要一个相当简单的功能,我想我的网站工作时,有人把一个www。在我的域名。我的首选是重定向所有
http://www.
请求
http://
,无需任何复杂操作

我尝试了两种方法来解决这个问题,但都没有达到预期效果。第一个选项是简单地在站点的
.htaccess
中添加以下“重写引擎”命令(为了记录在案,我确认该命令正在工作)

我尝试了这段代码的许多变体,但没有一个能起作用。即使在重置浏览器缓存、通过Tor访问之后,如果我以
www.
前缀进入我的网站,它也不会加载,Firefox会给我一个“服务器未找到”错误

我尝试过的第二件事是删除所有重写代码,只需添加DNS记录A,主机
www
指向我的IP地址。等了一小会儿,网站开始工作了!然而,这是难以置信的不一致,因为如果我访问
www.example.com
,它会删除
www.
,但是如果我访问
www.example.com/page.html
,它不会删除它(但它仍然可以工作)。另一个奇怪的问题是,如果我键入
www.example.com/folder/page
,它会将我发送到
www.example.comfolder/page

有人对我应该做什么或我可能做错什么有什么建议吗?

这应该行得通

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^example\.com 
RewriteRule (.*) http://example.com/$1 [R=301,L] 
(这不一定是答案,但我的声誉还不足以发表评论。)

前面的注释看起来应该可以完成这项工作,因此重写过程中出现了一些意想不到的情况

您可以尝试在较低级别启用重写日志记录,以查看重写规则的运行情况。如果未发现问题,则将日志记录级别提高一个级别。请注意,记录mod_重写操作可能会产生非常大的日志,因此在测试台或相对空闲的主机上尝试此操作是明智的

# Enable mod_rewrite
RewriteEngine On

# RewriteLogLevel: Controls verbosity of mod_rewrite log
#                  0=off, 9=max
RewriteLogLevel 2

作为旁注和imo,我将在配置文件中而不是在.htaccess文件中执行此操作,因为此规则应在该主机/vhost的站点范围内应用。这也使得Apache无法通过忽略.htaccess文件来避免执行重写。

的可能重复为了更简单的重定向需要,请查看
mod_alias
及其
rewrite
指令,这比
mod_rewrite
简单得多,如果可能的话,您应该尝试使用主Apache配置文件而不是
.htaccess
,特别是对于重定向需求。尝试了此操作,但也没有做任何事情。我完全错过了什么吗?因为有10种左右不同的引擎代码,我试过了,但没有一种能起到任何作用。
# Enable mod_rewrite
RewriteEngine On

# RewriteLogLevel: Controls verbosity of mod_rewrite log
#                  0=off, 9=max
RewriteLogLevel 2