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

时间:2016-11-23 07:30:41

标签: regex apache .htaccess redirect

根据此answer,您可以从重定向中排除单个子文件夹,如下所示:

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

如何扩展它以包含两个或更多单独的子文件夹?

3 个答案:

答案 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)