【问题标题】:ErrorDocument 404 to External URLErrorDocument 404 到外部 URL
【发布时间】:2017-01-30 19:16:18
【问题描述】:

我们已将网站移至新域名,出于 SEO 目的,我们需要将所有 404 重定向到新域名。

Our website domain : example.com
Moved to: new-domain.com/example

任何不存在的域 URL,例如 example.com/non-existentnew-domain.com/example/non-existent

我尝试在我的 .htaccess 文件中进行以下操作,但它不起作用。

ErrorDocument 404 http://new-domain.com/example/%{REQUEST_URI}

这是一个 WordPress 安装,除了用 WordPress 钩子处理之外,有没有 htaccess 解决方案?

我在 Ubuntu 16.04 上使用 Apache 版本 2.4.18

谢谢。

【问题讨论】:

    标签: wordpress apache .htaccess redirect


    【解决方案1】:

    您不能将错误文档与这样的服务器变量混合使用。您可以尝试使用 mod-rewrite。将此规则置于您当前的 wordpress 规则之上。

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(www\.)?old-example\.com$ [NC]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ http://www.new-example.com/example%{REQUEST_URI} [R=301,L]
    

    【讨论】:

    • 这是否与我们使用 WordPress 插件获得的现有重定向有任何冲突?
    • 我不知道你有什么插件。但这就是为什么我说你必须把它放在 WP 规则之上,所以它会执行这些规则,然后处理 WP 规则。它不应该影响您在新网站上的当前规则,这就是我提出第一个条件的原因。
    • 我发现了一个问题,你能用更新的部分检查我的问题吗?
    • 那些重定向在重写规则之前,我看不出它们如何影响你说的 2 不起作用。
    • 顺便说一句,我不喜欢将 rewrite 和 mod-alias 混合在一起,因为有时会出现奇怪的东西。为什么不将这些重定向转换为重写规则?例如RewriteRule ^cookie-policy/? http://www.digite.com/ [R=301,L]
    猜你喜欢
    • 2012-12-17
    • 2011-05-05
    • 2013-01-04
    • 2014-04-23
    • 1970-01-01
    • 2012-08-25
    • 1970-01-01
    • 2019-11-10
    • 1970-01-01
    相关资源
    最近更新 更多