htaccess - 如果链接不存在,则重定向到搜索

时间:2013-02-20 02:03:30

标签: php .htaccess mod-rewrite

我最近更改了网站永久链接。 一些链接由谷歌索引,并且它们在搜索结果中。 但是由于我的永久链接的更改,现在谷歌搜索将它们发送到错误404页面,这真的很糟糕。

因此,我没有显示error404,而是希望将它们重定向到从链接中提取关键字的搜索页面,例如:

我原来的链接现在不存在:

http://www.mydomain.com/2013/01/some-title-of-my-site/

现在,如果是error404,则将其重写为搜索页面

http://www.mydomain.com/search?q=some+title+of+my+site

这是我的解决方案:它正常工作且非常棒(没有错误页面: - ))

使用htaccess将error404重定向到搜索页面,然后通过explode url设置搜索查询

$urlfrom404 =   strtolower($_SERVER['REQUEST_URI']);
$tokens = explode('/', $urlfrom404);
$removeHyphen = strtr($tokens[sizeof($tokens)-2], '-', ' ');

1 个答案:

答案 0 :(得分:0)

您不需要.htaccess来执行重定向。相反,你可以这样做:

if ( num_rows_result ( $query ) == 0 )
    header ( 'Location: /search?q=' . $_GET['post'] );

函数num_rows_result ( $query )应返回与您的数据库匹配的行数,它应该是01而不是其他内容,因为您应该将其与主键。