使用.htaccess将旧站点重定向到新站点不起作用

ax6ht2ek  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(148)

我正在将我的网站URL从www.example.com更改invadingholland.com为accidentallydutch.com。我已经迁移了该网站,现在它位于两个位置。我正在尝试设置从旧网站上的所有帖子和页面到新网站的重定向(使用旧网站的.htaccess文件)。重定向不起作用,但也没有任何中断。
有一些重定向代码已经在那里(在两个地方)的插件,处理http到https重定向在我的旧网站(几年前添加)。我猜这是干扰在某种程度上或我添加我的代码在错误的。如果有人能告诉我如何设置这一点,我将非常感激。谢谢。
第一个

wwodge7n

wwodge7n1#

RewriteCond %{HTTPS} off
#RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule (.*)https://accidentallydutch.com/$1 [L,R=301]

您在参数之间缺少一个 * 空格 *。例如(.*)<here>https://accid...。最终结果是上面的操作将不起作用,因为正则表达式永远不匹配。但是,您还保留了检查HTTPS状态的 condition(HTTP到HTTPS规则的一部分),因此这将只重定向HTTP(而不是HTTPS)。
假设新的域指向不同的服务器,那么在旧的主机上就不需要这些了。删除现有的.htaccess文件的内容,使用一个简单的mod_alias Redirect指令:

# .htaccess at the old host/domain

# Redirect everything to the new domain
Redirect 301 / https://example.new/

Redirect指令是前缀匹配,匹配后的所有内容都传递到目标。例如,https://example.old/foo/bar被重定向到https://example.new/foo/bar
首先使用302(临时)重定向进行测试,以避免潜在的缓存问题。
在新主机上...

# BEGIN Really Simple SSL Redirect 5.3.0
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/
#RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
RewriteRule (.*)https://accidentallydutch.com/$1 [L,R=301]
</IfModule>
# END Really Simple SSL Redirect

如上所述,你又错过了一个<space>。然而,这部分是由“真正简单的SSL”插件维护的。没有真正的需要改变它(你所做的任何改变都可能被插件覆盖)。

相关问题