将404重定向到搜索页面

时间:2015-11-07 10:23:09

标签: .htaccess mod-rewrite redirect url-rewriting rewrite

在谷歌网站管理员中我有550.000找不到页面 - 404 - 我想对搜索页面进行一些重定向。

要成为用户的用户犯罪,需要转到搜索页面,但对我来说真的很复杂,因为我需要从404网址中提取搜索短语:

以下是包含404错误的2种类型的网址,需要重定向。

  • DOMAIN /电影/ 12298295 - 铁 - 曼-3

    DOMAIN /系列/ 15108-的行走-死/季节/ 3 /次/ 10

对于科西嘉,我需要提取电影的 JUST THE NAME ,或者系列并重定向到此网址

  • DOMAIN /搜索Q =铁曼-3

    DOMAIN /搜索Q =的行走-死

这是按部分划分的网址: 对于电影"只有4个部分:

  • DOMAIN - corse,是网站的域名

    / movie / - 基于内容类型(电影或系列)

    创建

    12298295-是此项目的ID,可以是表格 - 1 - 到 无限

    Iron-Man-3 - 电影的名字(我想要得到的)

对于"系列" - 像电影一样,但最后可以有更多的部分,完整的URL可以是:(所有这个网址,对于没有404的普通网页,都可以)

  • DOMAIN / serie / 15108-The-Walking-Dead / seasons / 3 / episodes / 10 - 链接到剧集页面

    DOMAIN / serie / 15108-The-Walking-Dead / seasons / 3 / - 链接到某个季节页面

    DOMAIN / serie / 15108-The-Walking-Dead / - 链接到本系列的TOP页面

请注意,我需要重定向此网址,如果结果是404页面(错误文档404),那么因为所有网页都使用相同类型的网址。

这是我的实际.htacces

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On
    RewriteCond %{THE_REQUEST} /index\.php [NC]
    RewriteRule ^(.*?)index\.php[^/] /$1? [L,R=301,NC,NE]

    RewriteCond %{THE_REQUEST} /index\.php [NC]
    RewriteRule ^(.*?)index\.php(?:/(.*))?$ /$1$2? [L,R=301,NC,NE]

    RewriteCond %{QUERY_STRING} ^q= [NC]
    RewriteRule ^busqueda\b /busquedas [R=301,L,QSA]

    # Redirect Trailing Slashes...
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

非常感谢你的帮助

1 个答案:

答案 0 :(得分:0)

以下内容适用于电影和连续剧:

RewriteRule ^(?:movie|serie)/\d+-([^/]+) /search?q=$1 [R=301,L,NC]