htaccess url 重定向,排除了一些现有的 URLS

htaccess url redirection with excluding few of existing URLS

这是我的问题

我在网站 A

上有 10 URLS
  1. 我想通过 .htaccess
  2. 将 2 URLS(共 10 个)从网站 A 重定向到网站 B
  3. 我希望列表中的 4 URLS 永远不会被重定向到任何地方
  4. 我希望将剩余的 4 URLS 重定向到网站 C
  5. 来自网站 A 的任何其他 URL 应该重定向到网站 D

任何人都可以帮忙吗?

Redirect /percussion/21021-crossing-grip-extensions  http://myblog.tumblr.com/thisURL
Redirect /percussion/21045-indoor-percussion-circuits http://myblog.tumblr.com/thisURL
Redirect /percussion/21047-26-standard-rudiments-on-social-media http://myblog.tumblr.com/thisURL

RewriteCond %{REQUEST_URI} !^/wind-instruments/38250-hd200-excerpt-video
RewriteCond %{REQUEST_URI} !^/namm-2015-products/49480-gc1ta
RewriteCond %{REQUEST_URI} !^/namm-2015-products/49485-u1ta-2015
RewriteCond %{REQUEST_URI} !^/namm-2015-products/49486-a6r-a-series-2015


RewriteRule ^(.+)$ http://www.codephun.com/ [R=301]

您有一个巨大的 .htaccess 文件。我将提供一些技巧,您可以使用它们来解决问题。

  1. 不要使用 Redirect 指令,只使用 RewriteRule 本身的规则。
  2. 使用 THE_REQUEST 变量而不是 REQUEST_URI 作为 THE_REQUEST 变量,它表示 Apache 从您的浏览器收到的原始请求,并且在执行某些重写规则后它不会被覆盖。

因此,对于上面显示的代码段,请使用:

RewriteEngine On

RewriteRule ^percussion/21021-crossing-grip-extensions  http://myblog.tumblr.com/thisURL [L,NC,R=302]
RewriteRule ^percussion/21045-indoor-percussion-circuits http://myblog.tumblr.com/thisURL [L,NC,R=302]
RewriteRule ^percussion/21047-26-standard-rudiments-on-social-media http://myblog.tumblr.com/thisURL [L,NC,R=302]

RewriteCond %{THE_REQUEST} !/wind-instruments/38250-hd200-excerpt-video
RewriteCond %{THE_REQUEST} !/namm-2015-products/49480-gc1ta
RewriteCond %{THE_REQUEST} !/namm-2015-products/49485-u1ta-2015
RewriteCond %{THE_REQUEST} !/namm-2015-products/49486-a6r-a-series-2015
RewriteRule ^(.+)$ http://www.codephun.com/ [R=301]

# Rest of the Joomla rules come here