Mod rewrite 网页中的Web服务器URL重定向循环

Mod rewrite 网页中的Web服务器URL重定向循环,mod-rewrite,Mod Rewrite,提前谢谢 我正在Web服务器(httpd.conf)中执行URL重定向,试图从中重定向URL 重写规则^/wps/(.*)/保险/医院- 现金福利1美元/零售-银行/保险/医院-现金福利[L,R=301] 当我试图用旧URL点击新URL时,我在web浏览器中遇到以下错误“ 此网页有一个重定向循环“ 零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/

提前谢谢

我正在Web服务器(httpd.conf)中执行URL重定向,试图从中重定向URL

重写规则^/wps/(.*)/保险/医院-

现金福利1美元/零售-银行/保险/医院-现金福利[L,R=301]

当我试图用旧URL点击新URL时,我在web浏览器中遇到以下错误“ 此网页有一个重定向循环“

零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/零售银行/保险/医院现金福利

输出是这样的,我不知道为什么会出现循环错误,我清除了浏览器中的所有缓存历史记录,但仍然存在错误。

严格地说是“循环”问题。如果我正确地阅读了您的重写规则,那么您的替换(目标URI)看起来将与您的模式匹配。。。这就解释了这个循环。在这种情况下,一种常见的做法是使用RewriteCond在替换(目标URI)返回时忽略它。这一替代方案的独特之处在于/零售银行业务/部分。所以不妨试试这个:

重写条件%{REQUEST_URI}+/零售银行业务/

这需要直接超越你的规则

更新-跳过标志示例:

重写cond%{REQUEST_URI}.+/retail banking/
重写规则[S=50]
重写规则1
重写规则2
... ...

重写规则50,因此您希望从此URL获取:

主机名/wps/portal/insurance/hospital现金福利

要访问此URL,请执行以下操作:

主机名/wps/portal/retail banking/insurance/hospital现金福利

它们基本上是一样的,只是你的新银行有一个额外的“零售银行”级别。/(.*)/匹配任何字符,包括“/”和其他字母。因此,它将匹配/portal/和/portal/零售银行业务和/portal/零售银行业务/零售银行业务,这就是为什么要使用重定向循环

为什么不把整个网址放进去?既然通配符搜索如此具体,为什么还要加入它呢?如果出于某种原因确实要匹配基本URL,请指定所需的字符和所需的级别数,而不是通配符搜索,如下所示:

^/wps/([A-z0-9-]*)/保险/医院现金福利


将匹配所有字母字符、所有数字字符和“-”字符,但不匹配“/”。您可以在URL中插入的唯一其他有效字符是“%”,但您很可能不需要它,除非您有一些需要转义的奇怪字符。该模式只需要/wps/和/insurance/之间的一个级别,因此它与新URL不匹配。试一试,如果你因为有其他URL需要重定向而无法使用该模式,请试一试,打开“多行”,然后你可以粘贴许多URL,并确保只有你想要匹配的URL。

这可能是网站上的格式,但我看不到你期望的源URL和目标URL。请你提供这些,以便我可以计算出正则表达式正在做什么。我需要一个实际的源URL和实际的预期URL的例子。您的重写规则与旧URL和新URL都匹配,这就是它循环的原因。如果您可以向我显示一个旧URL和一个新URL,那么我可以创建一个规则来匹配旧URL而不是新URL,因此您输入的规则是^/wps/([a-z0-9\-]*)/insurance/hospital cash benefit banking/insurance/hospital cash benefit,我发现在复制和粘贴一个破折号时,无法将一个重写条件应用于多个重写规则,您必须否定(反转)RewriteCond并使用带skip标志的前导REWRITE规则。这假定要应用条件的所有重写规则都分组在一起并立即遵循。我已经编辑了我的答案以包括一个例子。跳过标志记录在这里:@VinodKumarP,这已经从您最初的问题发展了一点,可能需要在此线程/论坛范围之外的咨询。重要的是,您需要花时间了解这些示例是如何工作的,以便您可以根据自己的配置应用和定制它们(如果需要,请参阅文档)。您之前说过,如果您在上面添加了Cond“每个不起作用的URL都起作用”。使用skip选项可以有效地完成同样的事情。确保您的重写规则已排序,以便只有那些需要应用条件的规则才在跳过中grouping@VinodKumarP. 请在新问题下提交最新一期。这是你问的第四个问题:1。如何修复重写循环。2.如何将重写条件应用于多个规则。3.使用跳过标志无法正确显示页面。4%重写替换中缺少编码。这些都很好,但它们需要作为单独的问题提交。