【问题标题】:How to redirect a page that does not exist anymore in Wordpress?如何重定向 Wordpress 中不再存在的页面?
【发布时间】:2015-04-29 07:50:54
【问题描述】:

当我第一次创建我的 Wordpress 网站时,我不知道在链接中使用 slugs 而不是 ids 是个好主意。那时我有一个页面,上面有地址:

http://example.com/?page_id=50

当我为我国流行的电子商务平台制作模板时,我包含了上述链接。一年后网站崩溃了,我不得不重建它。不用说,相关页面被分配了不同的 ID。我无法在电子商务平台上更改它(这将需要数千次单独的更改 - 这不是夸大其词)。

那么,我可以以某种方式将/?page_id=50 重定向到不同的页面吗?问题是没有页面有这个特定的 ID。

有什么办法吗?我尝试了 .htaccess 重定向,但它不起作用,或者我做错了什么。 我写了

Redirect /?page_id=50 http://example.com/page-slug/

在 .htaccess 中

我也尝试过(如下所示):

# 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

RewriteEngine on
RewriteCond %{QUERY_STRING} (^|&)page_id=50($|&)
RewriteRule . http://example.com/page-slug/? [R=301,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]
RewriteCond %{QUERY_STRING} (^|&)page_id=50($|&)
RewriteRule . http://lucart.pl/lucart-w-radio-eska/? [R=301,L]

</IfModule>

# END WordPress

都没有用:(

请帮忙。

【问题讨论】:

  • 您在 htaccess 中尝试了什么但没有成功?把它放在问题中,这样它就表明你试过了。还有你要重定向到的页面是什么?
  • 我刚刚编辑了帖子。

标签: php wordpress .htaccess redirect


【解决方案1】:

请在 html 开始之前在您的主题 header.php 模板的最顶部添加此重定向 php 代码:

$request_url = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
    if($request_url=='http://example.com/?page_id=50'){
        wp_redirect('http://example.com/page-slug/ ');
    }

【讨论】:

  • 太棒了!起初它不起作用,但那是我的错 - 我忘记了 PHP 标签 :) 非常感谢,你是我今天的英雄。为我节省了很多工作。
【解决方案2】:

您不能将查询字符串与Redirect 一起使用。您将需要使用mod_rewrite 并检查query string

RewriteEngine on
RewriteCond %{QUERY_STRING} (^|&)page_id=50($|&)
RewriteRule . http://example.com/page-slug/? [R=301,L]

【讨论】:

  • 我对我所尝试的内容的评论太长了,所以我编辑了原始帖子。底线是它没有工作:(
  • 这些规则应该在您的 wordpress 规则之前。这就是为什么它不起作用。顺便说一句,htaccess 重定向比 php 更快,因为它在执行 php 代码之前先读取它。
猜你喜欢
  • 2017-07-26
  • 2016-03-25
  • 1970-01-01
  • 1970-01-01
  • 2011-05-21
  • 2015-04-26
  • 2015-05-25
  • 2018-08-31
  • 2010-10-04
相关资源
最近更新 更多