Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

301 redirect only if URI doesn't contain specific string

I have a drupal website which has been split up to two separate websites, and now I need to setup some rewrite rules in order to drive traffic to the new site.

Original website looks like this:

http://www.website.com (frontpage)
http://www.website.com/web1/subpage1 (subpage)
http://www.website.com/web1/subpage2 (subpage)
http://www.website.com/subpage3 (subpage)
http://www.website.com/subpage4 (subpage)

All references to subpages that are not in the web1-category have been removed from the website, but the pages are still published and they still show up in Google.

What I need is a rewrite rule that redirects from "website.com" to the frontpage of "new-website.com" if the user tries to access a page that is not the frontpage and not in the web1-category.

I suppose a rewrite-rule checking for the string "web1" in the URI would be the answer to my problem, but unfortunately I have no idea how to write the syntax.

Any help would be appreciated.

Thanks in advance.


EDIT:

My htaccess file with @zessx proposed solution:

Options -Indexes
Options +FollowSymLinks

DirectoryIndex index.php

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} ^my-website\.com$ [NC]
RewriteRule ^(.*)$ http://www.my-website.com/$1 [L,R=301]

RewriteCond %{REQUEST_URI} !web1
RewriteRule  ^(.+)$ http://www.my-new-website.com [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
like image 926
MatDK Avatar asked Aug 07 '12 10:08

MatDK


2 Answers

This is what you need :

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_URI} !web1

RewriteRule  ^(.+)$ http://new-website.com [L,R=301]
like image 105
zessx Avatar answered Sep 20 '22 01:09

zessx


A colleague of mine, found a solution:

RewriteCond %{REQUEST_URI} !^/web1(/|$)
RewriteCond %{REQUEST_URI} !^/admin(/|$)
RewriteCond %{REQUEST_URI} !^/$
RewriteRule ^([\w/]*)$ http://www.new-website.com [L]`
like image 40
MatDK Avatar answered Sep 21 '22 01:09

MatDK