使用.htaccess将除1之外的所有目录URL重定向到外部URL

时间:2015-07-10 21:11:35

标签: regex .htaccess mod-rewrite redirect url-redirection

我需要重定向以下内容:

http://olddomain.com/products/ * ---> http://shop.newdomain.com/

http://olddomain.com/products/certain-category

除外

到目前为止,我可以将它们全部重定向:

RedirectMatch 301 /products(.*) http://shop.newdomain.com/

我只需要停止重定向'某些类别'

类似的东西:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond /products(.*) !^/(certain-category)/
RewriteRule (.*) http://shop.newdomain.com/ [L,R=301]
</IfModule>

虽然这会将整个网站重定向到http://shop.newdomain.com/

1 个答案:

答案 0 :(得分:1)

您可以使用此基于预后的负面规则:

RewriteEngine On

RewriteRule ^products/(?!certain-category).*$ http://shop.newdomain.com/ [NC,L,R=301]

(?!certain-category)是一个否定的预测,如果certain-category在网址/products/后面,则会导致匹配失败。

确保在测试之前清除浏览器缓存。