.htaccess重定向整个网站结构,但保留一些旧结构完整

时间:2015-01-20 09:07:48

标签: .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-images-folder/old-image.jpg

目前上述内容正在改写为:

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

哪个有意义,但这引出了我的问题,有没有办法从上面的RewriteRule中排除'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]

1 个答案:

答案 0 :(得分:0)

尝试:

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

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

您应检查链接并确保它们与旧路径正确链接。