重定向URL,但子页面除外

时间:2017-09-11 11:58:01

标签: regex .htaccess redirect

我尝试重定向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它没有用。我需要改变什么?

1 个答案:

答案 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]