我最近更改了其中一个网站的链接结构,需要301重定向:
所有带子目录的链接到没有子目录的版本(即只是使子目录消失)
e.g。
domain.com/fdfddffd/test -> domain.com/test
domain.com/yipeee/test -> domain.com/test
domain.com/fdfddffd/aaa -> domain.com/aaa etc.
所以我考虑过使用
RewriteRule ^([^/]+)(.*)$ / [R]
但是我需要从中排除两个目录,一个是“搜索”,另一个是“数据”。如何将上述重写规则与排除组合?
答案 0 :(得分:3)
使用RewriteCond
将这两者排除在!^/(search|data)/
# Unless the request matches /search/ or /data/
RewriteCond %{REQUEST_URI} !^/(search|data)/
# Rewrite to the contents of the second group (.*)
RewriteRule ^([^/]+)/(.*)$ /$2 [L,R=301]