Regex 与排除URL的重定向匹配不起作用

Regex 与排除URL的重定向匹配不起作用,regex,apache,.htaccess,url-redirection,mod-alias,Regex,Apache,.htaccess,Url Redirection,Mod Alias,我使用了RedirectMatch规则,该规则应排除以下两个URL: citycards/citycards位置/munche‌​n/citycards trachtenvogl reichenbachst‌​r-47-munchen citycards/citycards位置‌​s/munchen/citycards-4-you-munchen-hirtenstrasse-18‌​-慕尼黑 我对regex使用此规则,但我得到一个500内部服务器错误: RedirectMatch 301 /

我使用了
RedirectMatch
规则,该规则应排除以下两个URL:

  • citycards/citycards位置/munche‌​n/citycards trachtenvogl reichenbachst‌​r-47-munchen
  • citycards/citycards位置‌​s/munchen/citycards-4-you-munchen-hirtenstrasse-18‌​-慕尼黑
我对regex使用此规则,但我得到一个500内部服务器错误:

RedirectMatch 301 /citycards/citycards-locations/muenchen/((?!citycards/citycards-locations/munche‌​n/citycards-trachtenvogl-reichenbachst‌​r-47-munchen|citycards/citycards-location‌​s/munchen/citycards-4-you-munchen-hirtenstrasse-18‌​-munchen ).+)$ /citycards/citycards-locations/muenchen/$1
你知道为什么它不起作用吗

/citycards-4-you-munchen-hirtenstrasse-18‌​-munchen)。+)$

RewriteRule
模式的末尾附近有一个未替换的空格。这肯定会导致500错误,因为空格是分隔符,参数将不匹配(无效标志)

看起来这是一个打字错误,应该简单地删除?

您当前的规则是:(分解为多行以更好地显示/理解):

基本上,您的正则表达式表示:

  • 匹配
    /citycards/citycards位置/muenchen/
  • 后面没有下列任何一项

  • citycards/citycards位置/munche‌​n/citycards trachtenvogl reichenbachst‌​r-47-munchen
  • citycards/citycards位置‌​s/munchen/citycards-4-you-munchen-hirtenstrasse-18‌​-munchen
    (在
    18后面有一个空格‌​-慕尼黑
  • 匹配所有内容,直到URI结束
并将匹配的URI重定向到:
/citycards/citycards locations/muenchen/$1
,该URL与匹配的URL基本相同

我看到两个问题

  • 如果你的否定前瞻中的空白不被认为是模式的一部分,则基本上传递4个参数到<代码> RedirectMatch < /Cult>指令,导致状态500错误
  • 如果模式被正确解析,那么就有一个无限重定向循环

  • 你用什么语言?如果你只需要排除这两个网址,你能在你的应用层手动吗?我们使用德语。。。不,我们必须用其他重定向匹配规则排除更多URL…有趣的是,我问的是您的编程语言。php;-)。。。。。。。。。。。。。你在错误日志中看到了什么?啊。。。我会检查这个明天,但你是正确的空白空间是不对的…但是重定向匹配工作没有排除网址罚款…重定向匹配301 /城市卡/城市卡位置/ MueC陈/ URL从这个类型:/ CITYCARK / CITYCARS位置/ MueCun/BLABLA被重定向到/ CITYCARK / CITYCARK位置/ MUMNENKOK,在我删除空白后,没有500个内部服务器错误!但是regex也不起作用…重定向匹配301/citycards/citycards locations/muenchen/这很好,但是对于regex(包括URL)它不起作用:重定向匹配301/citycards/citycards locations/muenchen/((?!citycards/citycards locations/munchen/citycards-trachendovgl-reichenbachstr-47-munchen | citycards/citycards locations/munchen/citycards-4-you-munchen-hirtenstrasse-18-munchen)。$有什么想法吗?
    RedirectMatch
    301
    /citycards/citycards-locations/muenchen/((?!citycards/citycards-locations/munche‌​n/citycards-trachtenvogl-reichenbachst‌​r-47-munchen|citycards/citycards-location‌​s/munchen/citycards-4-you-munchen-hirtenstrasse-18‌​-munchen ).+)$
    /citycards/citycards-locations/muenchen/$1