我尝试重定向www.mywebsite/asd/
下的所有内容,但三个网址和任何子内容www.mywebsite/asd/A/
,www.mywebsite/asd/B/
和www.mywebsite/asd/A/
除外。
我尝试了以下模式,但似乎有问题:
RedirectMatch 301 ^/asd/((?!A/|B/|C/).)* /asd/new-target/index.html
当我在正则表达式编辑器中测试时,正则表达式可以实现我想要的功能。但是在htaccess它没有用。我需要改变什么?
答案 0 :(得分:0)
您可以使用此规则:
RedirectMatch 301 ^/asd/(?!A/|B/|C/|new-target/)(.*)$ /asd/new-target/index.html
清除浏览器缓存后进行测试。确保这是站点根.htaccess中的第一条规则,/asd/
目录中没有.htaccess。
或者,您可以在站点根目录中使用此mod_rewrite
规则.htaccess:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/ads/(?:A|B|C|new-target)/ [NC]
RewriteRule ^/?asd(?:/.*)?$ /asd/new-target/index.html [L,NC,R=301]