Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I've got a multisite sub-domain install with 3 sites on it. 2 of the sites use domain mapping.

The main site (id=1) requires several 301's that are old pages from a previous structure such as:

Redirect 301 /about/careers/ /contact/careers/

One of the other sites (id=3) has content that has moved into the main site. Normally, I'd redirect this in the .htaccess of that site:

Redirect 301 /news/events/ http://domain.com/news/events/

Multisite only has one .htaccess file. Is there a way to add 301 redirects for each individual site/domain from the main .htaccess file?

share|improve this question
    
maybe use mod_rewrite instead and RewriteCond %{HTTP_HOST} to apply a rewrite to specific hosts. –  Milo Mar 20 '13 at 17:34
    
Thanks @Milo but I have no idea about rewrite rules or htaccess files other than the basics, could you please expand a little? –  Mr Jonny Wood Mar 20 '13 at 19:42

2 Answers 2

Okay,

RewriteEngine On
RewriteBase /

# Blog ID1 Rewrite Rules
RewriteCond %{HTTP_HOST} ^(www\.)?primary-domain.co.uk [NC]
RewriteRule ^about/careers/$ contact/careers/ [R=301,NC,L]
RewriteRule ^glossary.html$ sitemap/ [R=301,NC,L]

# Blog ID3 Rewrite Rules
RewriteCond %{HTTP_HOST} ^(www\.)?mapped-domain3.co.uk [NC]
RewriteRule ^about/$ http://primary-domain.co.uk/about/ [R=301,NC,L]
RewriteRule ^news/$ http://primary-domain.co.uk/news/ [R=301,NC,L]

This works, there's 158 more lines to my particular site but you get the idea. I hadn't found a clear solution to this but this article helped me massively.

Hope this helps anyone else looking for the same solution ;)

share|improve this answer

I used the above information to figure it out for my system as well. But in the implementation I found that I had to structure it as such.

RewriteEngine On
RewriteBase /

# Website site-1 Rewrite Rules
RewriteCond %{HTTP_HOST} ^(www\.)?domain.com [NC]
RewriteRule ^that-one-page-old/$ that-one-page-new/ [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.)?domain.com [NC]
RewriteRule ^that-other-page-old.php$ that-other-page-new/ [R=301,L]

If I didn't structure this way, that-one-page-old/ would function as it should but then the following rules (that-other-page-old.php) would apply to all domains on the system. With it listed as above then each rule only applied to the domain intended. Hope that helps anyone having the same issue as me.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.