如何从.htaccess的RedirectMatch规则中排除指定目录
Apache 301重定向:迁移子目录至根目录并排除管理面板
你原来的RedirectMatch规则会把所有/oldblogpath/下的内容都重定向,包括admin目录。要实现排除需求,建议改用mod_rewrite规则(需确保服务器开启mod_rewrite模块),具体配置如下:
RewriteEngine On # 排除/oldblogpath/admin/路径,不执行重定向 RewriteCond %{REQUEST_URI} !^/oldblogpath/admin/ # 对其他/oldblogpath/下的内容执行301重定向到根目录 RewriteRule ^/oldblogpath/(.*)$ http://www.example.com/$1 [R=301,L]
规则说明:
RewriteEngine On:开启URL重写引擎,是使用mod_rewrite的前提RewriteCond %{REQUEST_URI} !^/oldblogpath/admin/:!表示否定匹配,意思是只要请求路径不是以/oldblogpath/admin/开头,才会执行后续的重写规则RewriteRule ^/oldblogpath/(.*)$ http://www.example.com/$1 [R=301,L]:把/oldblogpath/后面的所有内容($1对应括号里的(.*))重定向到域名根目录,R=301标记永久重定向,L表示这是最后一条规则,匹配后不再执行后续规则
注意:记得删除你原来的RedirectMatch规则,避免两条规则冲突导致异常。
内容的提问来源于stack exchange,提问作者Trick Jarrett
相关产品推荐
相关产品推荐

