.htaccess重定向整个网站结构,但保留部分旧结构不变

.htaccess重定向整个网站结构,但保留部分旧结构不变,.htaccess,.htaccess,我已经搜索过了,但找不到确切情况的答案: 我的网站结构如下 www.example.co.uk/old-folder1/old-folder2/old-page name 我需要将整个结构重定向到: www.example.co.uk/new-folder1/old-folder2/old page name 我成功地做到了这一点: RewriteRule ^old-folder1/(.*)$ /new-folder1/$1 [R=302,L] 然而,如果可能的话,目前我仍然希望提供旧结构的图

我已经搜索过了,但找不到确切情况的答案:

我的网站结构如下

www.example.co.uk/old-folder1/old-folder2/old-page name

我需要将整个结构重定向到:

www.example.co.uk/new-folder1/old-folder2/old page name

我成功地做到了这一点:

RewriteRule ^old-folder1/(.*)$ /new-folder1/$1 [R=302,L]
然而,如果可能的话,目前我仍然希望提供旧结构的图像

www.example.co.uk/old-folder1/old images folder/old image.jpg

目前,上述内容被改写为:

www.example.co.uk/new-folder1/old images folder/old image.jpg

这是有道理的,但这引出了我的问题,是否有任何方法将“old-folder1”中的一些子目录从上述重写规则中排除,以便例如www.example.co.uk/old-folder1/old images folder/old image.jpg仍然可以访问

我在这方面没有太多的经验,但通过研究,我得出了以下结论,但它不起作用

RewriteCond %{REQUEST_URI} !^/old-folder1/old-images-folder/.*$
我开始认为,我所采取的方法甚至不可能做到这一点:

RewriteRule ^old-folder1/(.*)$ /new-folder1/$1 [R=302,L]
谢谢

目前.htaccess文件的全部内容是:

Options +SymLinksIfOwnerMatch
RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_URI} !^/old-folder1/old-images-folder/.*$
RewriteRule ^old-folder1/(.*)$ /new-folder1/$1 [R=302,L]
尝试:

但是,可能发生的情况是,您的图像使用相对URL链接,因此它们可能相对链接到“新”图像文件夹


你应该检查你的链接,确保它们正确链接到旧路径。

@Croises我编辑过,显示了.htaccess文件的全部内容,是的,重写条件就在重写规则之前。我认为它应该可以工作…:-/@Croises-结果证明它确实有效,一个打字错误潜入我的htaccess文件,我的错误。谢谢你的评论,因为它导致了解决方案。谢谢@JonLin-虽然我原来的htaccess规则是正确的和有效的-但是由于一个打字错误(我的错误)失败了-你的答案也有效,而且更简洁。
RewriteRule ^old-folder1/(?!old-images-folder)(.*)$ /new-folder1/$1 [R=302,L]