通过 htaccess 将用户向上发送一级重定向 404 错误
Redirect 404 errors via htaccess sending the user up one level
大家好。
我最近管理了一个新站点,查看 google 上的网站管理员工具,我注意到大量(大约 9000 个)404 错误并深入查看,我匹配了一个奇怪的模式:
在一些文章中,我注意到一些图像指向一个带有 link 的页面,如下所示:
www.server.com/year/month/category/subcategory/somecharacter/
实际上需要一个 404 页面,但是,如果我删除最后一个目录 /somecharacter/
,一切正常。
是否可以更改 htaccess,以便进入 404 页面的用户只需 "go up one level" 并被重定向到该页面的父页面?
因此,如果在 none 个页面的末尾显示,用户将被重定向到主页。
提前致谢。
尝试:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+/[^/]+/[^/]+/[^/]+/)[^/]+/?$ / [L,R=301]
如果您有其他重写规则,可能需要将此规则放在它们之前。
如果当前 URL 导致 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}/[=10=] !-f
RewriteCond %{DOCUMENT_ROOT}/[=10=] !-d
RewriteRule ^(?:(.+?)/)?[^/]+/?$ / [L,NE,R=302]
大家好。
我最近管理了一个新站点,查看 google 上的网站管理员工具,我注意到大量(大约 9000 个)404 错误并深入查看,我匹配了一个奇怪的模式: 在一些文章中,我注意到一些图像指向一个带有 link 的页面,如下所示:
www.server.com/year/month/category/subcategory/somecharacter/
实际上需要一个 404 页面,但是,如果我删除最后一个目录 /somecharacter/
,一切正常。
是否可以更改 htaccess,以便进入 404 页面的用户只需 "go up one level" 并被重定向到该页面的父页面?
因此,如果在 none 个页面的末尾显示,用户将被重定向到主页。
提前致谢。
尝试:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+/[^/]+/[^/]+/[^/]+/)[^/]+/?$ / [L,R=301]
如果您有其他重写规则,可能需要将此规则放在它们之前。
如果当前 URL 导致 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}/[=10=] !-f
RewriteCond %{DOCUMENT_ROOT}/[=10=] !-d
RewriteRule ^(?:(.+?)/)?[^/]+/?$ / [L,NE,R=302]