.htaccess 重定向太多。设置htaccess以重定向
我把一个旧网站移到了一个新的cms,有些内容有新系统上找不到的链接 例如,在旧系统中,有一个名为 在新的一个,我不需要这些ID在最后。因此,我想重定向用户到 直接的 我在htaccess文件中写了以下内容:.htaccess 重定向太多。设置htaccess以重定向,.htaccess,.htaccess,我把一个旧网站移到了一个新的cms,有些内容有新系统上找不到的链接 例如,在旧系统中,有一个名为 在新的一个,我不需要这些ID在最后。因此,我想重定向用户到 直接的 我在htaccess文件中写了以下内容: RewriteRule ^(.*newsletter)(.*) $1 [L,R=301] 这给了我一个“太男人重定向”错误。 有人能指出我犯的错误吗 我计划使用正则表达式捕获包含“新闻稿”名称的所有链接,并删除url的其余部分以重定向用户。感谢您的帮助。使用(.*newsletter)(
RewriteRule ^(.*newsletter)(.*) $1 [L,R=301]
这给了我一个“太男人重定向”错误。
有人能指出我犯的错误吗
我计划使用正则表达式捕获包含“新闻稿”名称的所有链接,并删除url的其余部分以重定向用户。感谢您的帮助。使用(.*newsletter)(.*)
会导致重写单独匹配/newsletter
,因为*
匹配零个或多个字符。这会将mod_rewrite发送到一个循环中
相反,您可以使用与一个或多个字符匹配的+
,为此,我将在/?
前面加上前缀,以选择性地匹配尾随斜杠。不需要在()
中捕获它,因为您没有将它作为$2
重用
RewriteRule ^(.*newsletter)/?.+ $1 [L,R=301]
您的示例开始于*
。如果你真的需要它,把它放进去。但如果您真的只是想匹配/newsletter/123/1234
,而不是/someother/newsletter/123/1234
,请使用以下方法简化:
RewriteRule ^newsletter/?.+ /newsletter [L,R=301]
测试此功能时,请使用私人/匿名浏览窗口或新浏览器。浏览器主动缓存301重定向,如果您反对缓存,它会使调试重写规则变得非常困难。谢谢您的帮助。现在我也明白了这种行为。我们将从中学习。