美好的一天。
我最近选择了一个新网站进行管理,在google上查看网站管理员工具,我发现了大量(大约9000个)404错误,看起来很深,我已经匹配奇怪的模式: 在一些文章中,我注意到一些图像指向一个页面,其链接构建如下:
www.server.com/year/month/category/subcategory/somecharacter/
实际上需要404页面,但是,如果我删除最后一个目录/somecharacter/
,一切正常。
是否可以更改htaccess,以便进入404页面的用户,只需"上升到一个级别"并被重定向到页面的父级?
所以,如果最后没有显示任何页面,用户将被重定向到主页。
提前感谢。
答案 0 :(得分:1)
尝试:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+/[^/]+/[^/]+/[^/]+/)[^/]+/?$ /$1 [L,R=301]
如果你有其他重写规则,可能需要让这条规则出现在他们面前。
答案 1 :(得分:1)
如果当前网址导致404,您可以使用此通用和递归规则继续升级。当找到当前URI时,它将停止。
RewriteEngine On
## if current file/directory doesn't exist then
## forward to the parent directory of the current REQUEST_URI
RewriteCond %{DOCUMENT_ROOT}/$0 !-f
RewriteCond %{DOCUMENT_ROOT}/$0 !-d
RewriteRule ^(?:(.+?)/)?[^/]+/?$ /$1 [L,NE,R=302]