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

我想301重定向整个网站,但排除一个名为 /uploads的文件夹中的一切存在于 /root目录。

我谷歌过这个,但是没有找到任何东西,或者我认为我看到的是错误的。

我们能破解吗?

106251 次浏览

试试这个 改写规则:

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

此规则确实匹配任何以 /uploads/uploads/开头的 没有 URL 路径(由于在。Htaccess 文件) ,并将请求重定向到 Example.com的相应路径。

我觉得你想要这个:

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

如果得到 500 Internal Error,那么再次检查第二行上的 }之间是否有空格。

Simple answer I just stumbled upon myself.

在顶部的任何其他调用之前添加以下内容

RewriteRule ^(uploads) - [L]

基于现代别名的解决方案

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

在 root/. htaccess 中添加以下代码行:

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

这将把所有页面(不包括/upload/*)从旧域重定向到新域。