我想将我的网站目录www.mysite.com/dir/
中的每个错误请求重定向,以重定向到主页。
例如,www.mysite.com/dir/doesnotexist
将重定向到www.mysite.com/dir/
。
我找到了这个问题的几个解决方案,但这些都没有相对于目录本身(大多数在上层目录中使用.htaccess文件,它存储重写规则)。我在重命名目录时不想更改.htaccess文件内容,因此我希望目录中的.htaccess文件具有不依赖于目录名的重写规则。
有谁知道怎么做?
答案 0 :(得分:0)
如果您想要可以放置在任何目录中的规则,这些规则会将潜在的404未找到请求发送到目录索引,您可以使用:
RewriteEngine On
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^ %{ENV:BASE}/ [L,R]
因此,如果您将这些规则放在目录:/foo/bar/
中,然后请求一个不存在的文件:/foo/bar/some/file-blah
,您只需重定向到/foo/bar/