【问题标题】:301 Redirect - matching a portion of the filename301 重定向 - 匹配文件名的一部分
【发布时间】:2009-09-30 07:52:10
【问题描述】:

[更新]

我在下面问的是不可能的。在这种情况下,我的大脑很痛,我该如何简单地重定向

mydomain/folderA/folderB/name-0000.php

myNewDomain/folderC/folderB/name.php

[/UPDATE]

我目前有一些遵循以下模式的 URL。

/folder/folder2/name-name-id.php

内容现已移至具有不同文件结构的新域。如果不是因为 URL 的 ID 部分现在不同,重定向它们会很简单。

所以我需要能够从域 A 重定向以下内容:

/folderA/folderA2/name-name-0000.php

域 B 上的这个:

/folderB/folderB2/name-name-5555.php

我不知道如何匹配名称部分并忽略 id。请注意,名称可以是 n 个单词长,不限于两个。

有什么想法吗?

【问题讨论】:

  • 你怎么知道新的ID应该是什么?
  • 想了想,你不能做我想要的。正如 Jeremy 指出的那样,我不知道新 ID,因此无法知道将其指向何处。

标签: regex mod-rewrite redirect


【解决方案1】:

试试这个 URL 路径的正则表达式:

^/[^/]+/[^/]+/[^/]+-[0-9]+\.php$

现在您的根目录中 .htaccess 文件的 mod_rewrite 规则可以如下所示以匹配名称和 ID:

RewriteRule ^folderA/folderA2/([^/]+)-([0-9]+)\.php$ …

编辑    在您编辑您的要求后:

RewriteRule ^folderA/([^/]+)/([^/]+)-[0-9]+\.php$ /folderC/$1/$2.php [L,R=301]

【讨论】:

  • 谢谢,但我认为不知道新 ID 是不可能的。
  • 是的,完美运行,感谢您的帮助和快速响应。
猜你喜欢
  • 1970-01-01
  • 2016-03-25
  • 2014-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-18
  • 1970-01-01
相关资源
最近更新 更多