根据此answer,您可以从重定向中排除单个子文件夹,如下所示:
RewriteEngine on
RewriteRule !^uploads($|/) http://example.com%{REQUEST_URI} [L,R=301]
如何扩展它以包含两个或更多单独的子文件夹?
答案 0 :(得分:3)
您可以使用以下代码排除多个文件夹:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/test/
RewriteCond %{REQUEST_URI} !^/my-folder/
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
这会将所有不以文件夹/ test /或/ my-folder /开头的请求重定向到newdomain.com。
来源:基于来自here的破解代码。
答案 1 :(得分:2)
如果您按照a different answer对所引用的问题进行操作,则可能更容易阅读和维护。
RewriteEngine on
# Do not rewrite these directories
RewriteRule ^(uploads) - [L]
RewriteRule ^(second) - [L]
# Rewrite all other URL
RewriteRule (.*) http://example.com/$1 [L,R=301]
答案 2 :(得分:0)
如果您打算使用这些规则重定向Wordpress网站,则必须在排除列表中包括“ index.php”,否则排除将不起作用-因为Wordpress通过index.php处理所有内容。
如果要重定向域,以下是使用Wordpress的示例,除非您仍然希望管理员能够登录到上一个wp-admin部分。作为额外的示例,sitemap_index.xml也从重定向中排除。
((a**2+b**2)**0.5)