我想301重定向整个网站,但排除/uploads
目录中名为/root
的文件夹中的所有内容。
我已经用谷歌搜索了,但没有想出任何东西,或者我认为我所看到的是对的。
我们可以破解这个吗?
试试这个mod_rewrite规则:
RewriteEngine on
RewriteRule !^uploads($|/) http://example.com%{REQUEST_URI} [L,R=301]
此规则确实匹配任何不以/uploads
或/uploads/
开头的URL路径(由于在.htaccess文件中使用时路径前缀被删除,导致模式中缺少/
)并将请求重定向到example.com上的相应路径。
简单的回答我偶然发现了自己。
在任何其他呼叫之前的顶部添加以下内容
RewriteRule ^(uploads) - [L]
我想你想要这个:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/uploads/
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
如果你得到500 Internal Error
然后仔细检查你和}之间有空格!在第二行。
基于模态别名的解决方案
重定向除特定文件夹以外的所有内容
将以下行添加到root / .htaccess:
RedirectMatch 301 ^/((?!uploads).*)$ http://newdomain.com/$1
这会将所有网页(不包括/ uploads / *)从旧域重定向到newdomain。