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