使用 .htaccess 重定向站点但排除两个以上的文件夹

Men*_*heh 2 regex apache .htaccess redirect

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

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

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

Men*_*heh 5

您可以使用以下代码排除多个文件夹:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/test/
RewriteCond %{REQUEST_URI} !^/my-folder/
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

这会将所有不以文件夹 /test/ 或 /my-folder/ 开头的请求重定向到 newdomain.com。

来源:基于来自此处的损坏代码。


Jan*_*ock 5

如果您对所引用的问题采用不同的答案,可能会更容易阅读和维护。

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]
Run Code Online (Sandbox Code Playgroud)