使用.htaccessredirect网站,但排除一个文件夹

我想301redirect整个网站,但排除一个名为“上传”的文件夹中存在的根目录中的所有内容。 我已经为此search了,但没有提出任何事情,或者我不认为我所看到的是正确的。

我们能破解这个吗?

试试这个mod_rewrite规则:

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

此规则不匹配任何/uploads/uploads/开头的URLpath(由于在.htaccess文件中使用了path前缀删除,导致/在模式中缺less前导/ ),并将请求redirect到相应的path.com

简单的答案,我只是偶然发现自己。

在任何其他呼叫之前,添加以下内容

 RewriteRule ^(uploads) - [L] 

我想你想要这个:

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

如果你得到500 Internal Error那么请仔细检查你和“ !”之间是否有空格 在第二行。

基于mod-alias的解决scheme

redirect除特定文件夹以外的所有文件

将以下行添加到您的根/ .htaccess中:

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

这会将所有页面(不包括/ uploads / *)从旧域redirect到新域。