Becuse在谷歌网站管理员中我有550000个未找到的页面-404-我想重定向到搜索页面。
对于用户来说,要成为用户犯规,需要转到搜索页面,但对我来说真的很复杂,因为我需要从404 url中提取搜索短语:
以下是2种类型的url,有404个错误,需要重定向。
-
域/电影/12298295-龙曼-3
域/系列/15108《行尸走肉》/季/3/集/10
关于corse,我需要提取电影或系列的名称并重定向到此url
-
域/搜索?q=铁人3号
域/搜索?q=行尸走肉
这是按部分列出的URL:对于"电影"只有4个部分:
-
域名-的corse,是网站的域名
/电影/-基于内容类型(电影或系列)创建
12298295-是此项目的ID,可以是-1-到无限
铁人三号-电影的名字(这是我想要的)
对于"系列"-和电影一样,但最后可以有更多的部分,完整的URL可以是:(所有这些URL,对于一个没有404的普通页面,都可以)
-
域名/系列/15108《行尸走肉》/季/3/集/10-链接到集页面
域/系列/15108行尸走肉/季节/3/-链接到一些季节页面
域/serie/15108行尸走肉/-链接到此系列的首页
请注意,我需要重定向这个url,如果结果是404页面(ErrorDocument 404),因为所有页面都使用相同类型的url。
这是我实际的.htaces
<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 ^busquedab /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>
非常感谢您的帮助
以下内容适用于电影和连续剧:
RewriteRule ^(?:movie|serie)/d+-([^/]+) /search?q=$1 [R=301,L,NC]