当用户遇到404错误时,我需要重定向到上一个目录。
例如,如果找不到页面www.examplesite.com/aaa/bbb/ccc/page.html
,我将用户重定向到www.examplesite.com/aaa/bbb/ccc/
,如果找不到www.examplesite.com/aaa/bbb/ccc/
,则会重定向到www.examplesite.com/aaa/bbb/
,依此类推。唯一的问题是(在此示例中)用户应该从www.examplesite.com/aaa/bbb/ccc/page.html
转到www.examplesite.com/aaa/bbb/
而不加载www.examplesite.com/aaa/bbb/ccc
。
有什么想法吗?感谢。
答案 0 :(得分:0)
尝试将此添加到文档根目录中的htaccess文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/[^/]+$ /$1/ [L,R=301]
说,您请求www.examplesite.com/aaa/bbb/ccc/page.html
,而page.html不存在,您将被重定向到:www.examplesite.com/aaa/bbb/ccc/
,如果 目录不存在,您将被重定向到:www.examplesite.com/aaa/bbb/
并且如果 目录不存在,您将被重定向到:www.examplesite.com/aaa/
,如果那目录不存在,那么你最终会获得404。
如果你想要它,那么最后一步将你转到root,然后将最后一行改为:
RewriteRule ^(.*?)/?[^/]+$ /$1/ [L,R=301]