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

问题描述 投票:54回答:4

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

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

我们可以破解这个吗?

apache .htaccess redirect
4个回答
67
投票

试试这个mod_rewrite规则:

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

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


54
投票

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

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

RewriteRule ^(uploads) - [L]

24
投票

我想你想要这个:

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

如果你得到500 Internal Error然后仔细检查你和}之间有空格!在第二行。


10
投票

基于模态别名的解决方案

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.