我移动了一个前站点基于网站来。导工作得很好,但问题是,旧的链接,不再工作。因为只有50或使的文章,我认为将是一个好主意,把一个规则为每个职位(。要).

嗯...不总是事情就像你想要的,所以重定向不在所有的工作:(

旧网站的链接,是这样的:

http://site.com/index.php?option=com_content&task=view&id=49&Itemid=29
http://site.com/index.php?option=com_content&task=view&id=42&Itemid=29
http://site.com/index.php?option=com_content&task=view&id=68&Itemid=29

和需要翻译:

http://site.com/?p=23
http://site.com/?p=24
http://site.com/?p=25
  • 基本上没有关系之间旧的和新的联系,因此我不认为regex将帮助

  • 旧的和新的网站是相同的领域

Ok,问题是,任何规则,我已经尝试了(我尝试了很多!), 没有工作。在少数情况下,我得到500错误,但是大多数的时候向没有工作。

所以,任你们有同样的问题?我不需要有永久性的,但如果我可以,那将更好。问题是我有许多的反向链接到旧网址的我不想失去他们。

多谢了伙计们!

有帮助吗?

解决方案

由于转换你站过来们的兴趣和承诺的程度.这种相对较新,是否有任何防止使用旧网站!ID在你WP数据库表?这将允许使用regex相当容易。

另一种选择是创建一个独立的PHP script处理的网站!网址然后重定向到Wordpress的。所以你会有一个regex在Apache configuration检测指数。php?option=com_content&task=view网址,发现价值为'id',然后重新定向到someotherscript.php 这将有地图,你的id从网站!为。这个脚本将随后使用header('Location:?p='.$id)重新定向正确的一页。

其他提示

现代的内饰设计。对于这个想法!我把这个放在index.php (wordpres默认):

if(isset($_GET['option'])) {
    if(is_numeric($_GET['id'])){
        header ('HTTP/1.1 301 Moved Permanently');
        header("Location: http://www.site.com/?p={$_GET['id']}");
        die();
    }else {
        die('Hacking attempt');
    }
}

工作和就像...伟大的!D

另一种选择可能已经使用的重新定向的插件,可以为你做这个。节省的解决方案打破每一次更改或更新主题。

我有一个非常类似的问题与一些不知名的CMS网站.如果你想这样做。就在Apache有一种方法,但如果有,是绝对没有任何关系之间的旧址和新的URL比你要写两条路线为每个网址对。

RewriteEngine On
# now the first Example
RewriteCond %{QUERY_STRING} ^option=com_content&task=view&id=49&Itemid=29$
RewriteRule ^index\.php$ /?p=23 [R=301,L]
# Repeat last two lines for all your URLs

我不知道如果你真的有这样的新的网址。个人的一个标准电子格式URL会更好,例如: https://example.com/path/to/new/page

如果你想要这样做,你可以做到这一点,但是你必须添加一个?在结束目无旧的查询串将加入到新的目的地是这样的: https://example.com/path/to/new/page?option=com_content&task=view&id=49&Itemid=29 因此,对于这个例子中这样做如下:

RewriteCond %{QUERY_STRING} ^option=com_content&task=view&id=49&Itemid=29$
RewriteRule ^index\.php$ /path/to/new/page? [R=301,L]
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top