相对重定向到目录的主页面

时间:2014-02-02 20:00:51

标签: apache .htaccess mod-rewrite redirect

我想将我的网站目录www.mysite.com/dir/中的每个错误请求重定向,以重定向到主页。

例如,www.mysite.com/dir/doesnotexist将重定向到www.mysite.com/dir/

我找到了这个问题的几个解决方案,但这些都没有相对于目录本身(大多数在上层目录中使用.htaccess文件,它存储重写规则)。我在重命名目录时不想更改.htaccess文件内容,因此我希望目录中的.htaccess文件具有不依赖于目录名的重写规则。

有谁知道怎么做?

1 个答案:

答案 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/