Helicon ISAPI_Rewrite 301 将某些文件从一个文件夹重定向到另一个文件夹

Helicon ISAPI_Rewrite 301 redirect certain files from one folder to another

我们将站点从一个文件夹移到了另一个文件夹。有些服务我们不得不保留在旧位置。所以我们不得不保留旧文件夹。

我们在 FolderA 根目录下的 helicon ISAPI .htaccess 文件中有这个文件

RewriteRule ^(\w+)\/(\w+)\/(\w+)\/t_(\d+)\/ /folderA/top.aspx?id=&linkki=[=11=]

我们如何使 301 重定向到新位置(文件夹 B)?我知道我们可以做到这一点。

RewriteRule ^(\w+)\/(\w+)\/(\w+)\/t_(\d+)\/ /folderB/top.aspx?id=&linkki=[=12=] 

但这与对用户(以及搜索引擎)进行 301 重定向不同。

要使 301 重定向有效,只需在规则末尾添加以下标志:

RewriteRule ^(\w+)/(\w+)/(\w+)/t_(\d+)/?$ /folderB/top.aspx?id=&linkki=[=10=] [NC,R=301,L]

要将文件夹 A 重定向到文件夹 B,您需要按照其他答案中的评论进行重定向。

这会将 /folderA/blabla/blalba/bla/t_2345 重定向到 /folderB/blabla/blalba/bla/t_2345

RewriteRule ^/folderA\/(\w+)\/(\w+)/(\w+)\/t_(\d+)$ /folderB////t_ [NC,R=301,L]

如果文件夹数量发生变化,但它们都以 t_digits 结尾,您可以查找文件夹 A 和 t_digits 之间的任何内容。例如,这会将 /folderA/abcdef/t_1234 重定向到 /folderB/abcdef/t_1234

RewriteRule ^/folderA\/(.+)\/t_(\d+)$ /folderB//t_ [NC,R=301,L]

您可能需要调整是否保留前导斜杠,具体取决于配置方式。此外,您的问题有尾部斜杠,但评论示例没有,因此请根据您的实际需要添加或删除尾部斜杠。

编辑: 关于永久重定向的附注。在调试时,使用不带 301 的 [NC,R,L]。当重定向是永久性的 (301) 时,浏览器通常会缓存以前的规则。完成测试后,将其更改为永久性。请参阅此答案中的第 2 条和第 3 条: