使用.htaccess重定向网站但排除一个文件夹

时间:2010-08-05 10:59:56

标签: apache .htaccess redirect

我想301重定向整个网站,但排除/uploads目录中名为/root的文件夹中的所有内容。

我已经用Google搜索了,但没有想出任何东西,或者我认为我所看到的是对的。

我们可以解决这个问题吗?

4 个答案:

答案 0 :(得分:65)

试试这个mod_rewrite规则:

RewriteEngine on
RewriteRule !^uploads($|/) http://example.com%{REQUEST_URI} [L,R=301]

此规则确实匹配/uploads/uploads/开头的任何网址路径(由于路径,模式中缺少前导/在.htaccess文件中使用时删除前缀)并将请求重定向到 example.com 的相应路径。

答案 1 :(得分:54)

简单的回答我偶然发现了自己。

在任何其他通话之前的顶部添加以下

RewriteRule ^(uploads) - [L]

答案 2 :(得分:24)

我想你想要这个:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/uploads/
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]

如果您获得500 Internal Error,请仔细检查第二行是否有} 之间的空格。

答案 3 :(得分:10)

基于模态别名的解决方案

重定向除特定文件夹以外的所有文件

将以下行添加到root / .htaccess:

RedirectMatch 301 ^/((?!uploads).*)$ http://newdomain.com/$1

这会将所有网页(不包括/ uploads / *)从旧域重定向到新域。