跟踪301重定向规则,并将所有请求移至www子域

时间:2018-11-23 09:02:07

标签: apache .htaccess redirect

我在ApacheO2.4.18的DigitalOcean(Ubuntu 16.04)中添加了一个example.com域,并在其上安装了Wordpress。该站点运行正常。

问题是,所有请求www.example.com都重定向到example.com。我需要example.com重定向到www.example.com

我看到有两种方法可以做到这一点。 1. .htaccess和2. Apache配置文件,当前使用000-default.conf文件。我安装了letsencrypt ssl,它将以下RewriteRule添加到000-default.conf

RewriteEngine on
RewriteCond %{SERVER_NAME} =www.example.com [OR]
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

根据在线研究,我确实将000-default.conf修改为

RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

,还尝试了.htaccess文件中的以下代码。

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

执行上述任何一项操作时,出现错误multiple redirection loop。基本上将example.com重定向到www.example.com,将www.example.com重定向到example.com,依此类推。我在Redirectcheck.com上进行了测试。

主要问题是我似乎找不到第一个301 Redirect,这是所有被重定向到exmple.com的请求。如果可以禁用或覆盖主要的301 Redirect规则,则可以实现将所有请求重定向到www.example.com的操作。

我做了研究,但是在这里我很难受,任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

所以,我终于找到了它,所有配置都是正确的,唯一的问题是在WordPress->管理面板->设置->常规中。我将site_urlmain_url放置为example.com,当我将其更新为www.example.com并再次测试时,它确实将其修复。