将.com的所有域重定向到wordpress网站上的.org



我需要网站重定向方面的帮助,我有两个域:mywebsite.com和mywebsite.org,它们都指向同一个网站(wordpress(,并且.com已经被谷歌索引,我想将所有*.com链接重定向到www.mysite.org链接,也将所有非www的.org链接重定向到www.myebsite.org

我已经这样做了,但什么都不起作用:

<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS_HOST} ^(www.)?mywebsite.com$ [NC]
RewriteRule ^(.*)$ http://www.mywebsite.org/$1 [R=301,L]
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

我做错了什么?谢谢

RewriteCond %{HTTPS_HOST} ^(www.)?mywebsite.com$ [NC]
RewriteRule ^(.*)$ http://www.mywebsite.org/$1 [R=301,L]

如注释所示,HTTPS_HOST不存在,应该是HTTP_HOST。因此,上述条件将无法匹配,并且不会发生重定向。

因此,如果您更正了上面的变量,那么这个应该可以将所有流量从mywebsite.com重定向到www.mywebsite.org,并保持URL路径。

然而,由于这是WordPress,您应该避免手动编辑作为前端控制器一部分的指令,即# BEGIN WordPress# END WordPress注释标记之间的代码。添加的任何重定向都应该在`.htaccess文件顶部的# BEGIN WordPress块之前

这也不会重定向.org域的非www版本。

如果你只有这两个域,那么你可以通过检查请求的主机名是而不是规范主机名(即不是www.mywebsite.org(并相应地重定向来简化重定向。

请尝试以下操作:

Options +FollowSymlinks
# Canonical redirect
RewriteCond %{HTTP_HOST} !^www.mywebsite.org$
RewriteRule (.*) http://www.mywebsite.org/$1 [R=302,L]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
<IfModule>
# END WordPress

CondPattern上的!前缀否定正则表达式,因此只有当条件不匹配时,该条件才成功。

使用302(临时(重定向进行测试,只有在您确信这一切正常时才更改为301(永久(,以避免潜在的缓存问题。

请确保在测试前已清除浏览器缓存。

请注意,您正在重定向到HTTP(而不是HTTPS(-这是故意的吗?

最新更新