htaccess - 将旧域重定向到新域,但有异常

htaccess - redirect old domain to new with exception

htaccess - 将旧域重定向到新域,但出现异常

我有一个旧域:www.olddomain.com,有 URL 个文件:1.php、2.php 和 3.php 我想将 www.olddomain.com 重定向到 www.newdomain.com,但除了 3.php 应该自动 redirected/renamed 到 4.php重定向后,即:

www.olddomain.com/3.php => www.newdomain.com/4.php

其余同理:

www.olddomain.com/1.php => www.newdomain.com/1.php
www.olddomain.com/2.php => www.newdomain.com/2.php

RewriteEngine on
RewriteCond %{HTTP_HOST} ^olddomain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.olddomain\.com$
Redirect /3.php /4.php[N]
RewriteRule (.*)$ https://www.newdomain.com/ [R=301,L]

当然不是我想要的那样,请帮忙。

在通用重定向规则之前有特定的重定向:

RewriteEngine on

# redirect 3.php
RewriteCond %{HTTP_HOST} ^(?:www\.)?olddomain\.com$ [NC]
RewriteRule ^3\.php$ https://www.newdomain.com/4.php [L,NC,R=301]

# redirect everything else
RewriteCond %{HTTP_HOST} ^(?:www\.)?olddomain\.com$ [NC]
RewriteRule ^ https://www.newdomain.com%{REQUEST_URI} [R=301,L,NE]

尝试:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(?:www\.)?olddomain\.com$ [NC]
RewriteCond %{REQUEST_URI} ^\/3\.php [NC] #usually use NC if using Windows
RewriteRule ^ https://www.newdomain.com/4.php [R=301,L]

RewriteCond %{HTTP_HOST} ^(?:www\.)?olddomain\.com$ [NC]
RewriteCond %{REQUEST_URI} !\/3\.php [NC] #usually use NC if using Windows
RewriteRule ^(.*)$ https://www.newdomain.com/ [R=301,L]
#or if it adds two slashes use https://www.newdomain.com