0

我一直在尝试以下变体但没有成功:

Redirect permanent /([0-9]+)/([0-9]+)/(.?).html http://example.com/($3)

它似乎没有任何效果。我也尝试过重写但没有类似的结果。

我希望所有类似于:http ://example.com/2002/10/some-long-title.html 的链接 将浏览器和蜘蛛重定向到:http ://example.com/some-long-title

当我将它保存到我的服务器并访问包含嵌套文件夹的链接时,它只返回一个 404,而地址栏中的原始 URL 未更改。我想要的是地址栏中的新位置(当然还有内容)。

4

2 回答 2

0

我想这或多或少是您正在寻找的:

RewriteEngine On
ReriteRule ^/([0-9]+)/([0-9]+)/(.?)\.html$ http://example.com/$3 [L,R=301]

这可以在中央 apache 配置中使用。如果您必须使用 .htaccess 文件,因为您无权访问 apache 配置,那么语法会略有不同。

于 2012-11-13T22:23:38.980 回答
0

使用 mod_alias,您需要RedirectMatch,而不是常规Redirect指令:

RedirectMatch permanent ^/([0-9]+)/([0-9]+)/(.+)\.html$ http://example.com/$3

您的最后一个分组必须是(.+)1个字符或更多的任何内容,您之前拥有的内容与0 或 1 个字符的任何内容(.?)匹配。此外,最后一个反向引用不需要括号。

使用 mod_rewrite,它看起来类似:

RewriteEngine On
RewriteRule ^/([0-9]+)/([0-9]+)/(.+)\.html$ http://example.com/$3 [L,R=301]
于 2012-11-13T23:32:22.443 回答