重定向除子文件夹以外的所有内容

时间:2015-10-05 11:32:29

标签: apache .htaccess mod-rewrite

我的.htaccess中有这个代码,但是没有按我的意愿工作

RewriteEngine on

RewriteOptions inherit

RewriteCond %{HTTP_HOST} ^old-domain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.old-domain\.com$

RewriteCond %{REQUEST_URI} !^/blog

RewriteRule ^/?$ "http://www.new-domain.com/" [R=301,L]

我需要的是, old-domain.com [或] www.old-domain.com 的所有内容都会转到新域名。 com old-domain.com/blog 文件夹除外。它工作得很好,因为重定向确定,但我/博客重定向,我不想让它重定向到new-domain.com

我在blog.old-domain.com上有一个别名域并且工作正常,但是当我写 old-domain.com/blog 重定向到 new-domain.com

有什么想法吗?

- 编辑 -

我试过这个解决方案,但仍然不适合我:

RewriteEngine on

RewriteOptions inherit

RewriteCond %{HTTP_HOST} ^old-domain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.old-domain\.com$

RewriteRule !^blog($|/) http\:\/\/new-domain.com\/%{REQUEST_URI} [L,R=301]

1 个答案:

答案 0 :(得分:1)

这对我来说很好。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?old-domain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/blog [NC]
RewriteRule ^(.*)$ http://www.new-domain.com/$1 [R=301,L]