已经有一段时间了,因为我已经搞砸了.htaccess而且我似乎无法做到这一点。我有一个网站,例如example.com,我希望example.com/*重定向到example.com/collector.html ,除了以下的子目录example.com/special下的URL,我想要的继续工作。
例如:
我会想到像
这样的东西RedirectMatch 302 ^/[^(special)]/.* /collector.html
RedirectMatch 302 ^/[^(collector.html)/]* /collector.html
可以做到这一点,但它似乎不像我想要的那样工作。
答案 0 :(得分:4)
也许这个? (需要mod_rewrite)
RewriteEngine On
RewriteRule !^(special(/.*)?|collector\.html)$ collector.html [R,L]
答案 1 :(得分:2)
这对我来说在Apache 2.2.13上运行正常,我重新创建了你描述的目录结构。
RedirectMatch 302 /(?!special) http://www.example.com/collector.html
如果URI包含字符串'special',则括号中的模式表示不匹配。
此外,mod重写并不总是可用,在这种情况下不需要。
答案 2 :(得分:0)
试试这个:
RedirectMatch 302 /\/[^(special)]\/.+/ /collector.html
RedirectMatch 302 /\/[^(collector\.html)]/ /collector.html
答案 3 :(得分:0)
也许......?
RewriteEngine on
RewriteRule ^(?!special) collector.html [R,NC]