重定向目录中除一个子目录 .htaccess 之外的所有页面

Redirect all pages in direcory except one subdirectory .htaccess

我想让一个 URL 仍然从旧域的子目录中得到服务,但将所有其他内容从父目录重定向到新域。

www.olddomain.co.uk/directorya/directoryb -> 无重定向 www.olddomain.co.uk/directorya -> www.newdomain.co.uk/directorya

如果输入 URL 时带有尾部斜杠

,则此方法有效
RewriteCond %{REQUEST_URI} !^/directorya\/directoryb [NC]
RewriteRule ^(.*)$ http://www.newdomain.co.uk/ [L,R=301]

所以http://www.olddomain.co.uk/directorya/directoryb/ works but http://www.olddomain.co.uk/directorya/directoryb失败了。

尝试在末尾添加 $ 和其他含义并尝试

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

来自 Redirect entire site except one directory to a new site - apache .htaccess

我需要做什么才能得到http://www.olddomain.co.uk/directorya/directoryb/ or http://www.olddomain.co.uk/directorya/directoryb to redirect? (while all other http://www.olddomain.co.uk pages go to http://www.newdomain.co.uk

由于我不明白的原因 http://www.olddomain.co.uk/directorya/directoryb 转到 Google 并且不重定向

尝试使用 THE_REQUEST 变量并确保这是 第一条规则:

RewriteCond %{THE_REQUEST} !\s+/+directorya/directoryb [NC]
RewriteRule ^ http://www.newdomain.co.uk/? [L,R=301]

清除浏览器缓存后进行测试。