字母数字数字重定向



我需要重定向第一个"/"在我的领域里。例如

我需要重定向这个:https://audiobookscloud.com/B07D5HYCR2

:https://example.com/B07D5HYCR2

但我需要确保这只发生在第一个斜杠后面有10个数字时,即:".com/">

我的解决方案是:

RewriteRule ([^/]+)/d{10}?$ https://www.example.com/$1 [L,R=301]

但是它没有像预期的那样工作。

如何解决这个问题?

您的匹配模式与您所描述的不匹配。您实现的是:任何包含的非空字符串的字符串都包含一个斜杠,后面跟着一个斜杠,没有其他内容或正好是10个数字。RewriteRule仅应用于请求URL的路径组件。所以就像你的例子中的/B07D5HYCR2,而不是audiobookscloud.com/B07D5HYCR2这样的东西,正如你显然期望的那样。

稍微改变匹配模式以更接近你所描述的:

RewriteRule ([^/]{10})?$ https://www.example.com/$1 [L,R=301]

虽然这会重定向一些url比你想要的,根据你的描述。这就是为什么我建议做一些进一步的改变:

RewriteRule ^/?[0-9A-Z]{10}$ https://www.example.com%{REQUEST_URI} [L,R=301]

该变体精确匹配所有恰好包含10个字符的请求路径,这些字符要么是数字,要么是大写字母,前面或后面没有任何内容。

我强烈建议您查看一下您正在使用的工具的文档。这里是apache重写模块。作为典型的开源软件,它具有出色的质量,并附带了很好的示例:https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html

最新更新