我想301重定向整个网站,但排除/uploads
目录中名为/root
的文件夹中的所有内容。
我已经用Google搜索了,但没有想出任何东西,或者我认为我所看到的是对的。
我们可以解决这个问题吗?
答案 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 / *)从旧域重定向到新域。