0

With .htaccess I'm trying to redirect all traffic away from a WordPress site, except traffic to wp-admin.

The goal is to redirect all traffic away from the site, but retain admin access.

I'm using .htaccess to do this, and it's working to an extent. But when trying to access wp-admin I get an internal server error.

The site is on a subdomain and this is my current code:

    RewriteEngine on
    RewriteCond %{HTTP_HOST} subdomain\.oldsite\.co\.uk$ [NC]
    RewriteCond %{REQUEST_URI} !^/wp-admin [NC]
    RewriteRule ^(.*)$ http://www.newsite.co.uk/$1 [R=301,L]

I'd be grateful for any insights.

5
  • Do you mean error 500? They are very unspecific from outside, you would have to first figure out actual underlying reason for it.
    – Rarst
    Commented Sep 17, 2016 at 17:28
  • Yes indeed, error 500.
    – Dvaeer
    Commented Sep 17, 2016 at 18:06
  • @Dvaeer From your code, it looks like you want all traffic from subdomain.oldsite.co.uk to redirect to www.newsite.co.uk except when someone visits subdomain.oldsite.co.uk/wp-admin? Commented Sep 17, 2016 at 18:17
  • That's right @ethan-jinks-osullivan. And the redirection part works, but the exception doesn't.
    – Dvaeer
    Commented Sep 17, 2016 at 18:33
  • I've tried various things, but not getting a satisfactory result. So now doing this a different wa. Will post as an answer. Thank you everyone - learned a few things.
    – Dvaeer
    Commented Sep 19, 2016 at 8:51

1 Answer 1

1

Answering my own question for future reference. I couldn't get a redirect to work with .htaccess, but found some helpful troubleshooting suggestions, mainly this one: https://stackoverflow.com/a/14116956/3218102.

I ended up doing this with a modification to header.php and the functions wp_redirect and is_admin.

This is the code I added to the top of header.php:

<?php 
// Redirect everyone to new URL, except admin
if ( ! is_admin() ) {
     wp_redirect( 'http://www.newsite.co.uk/', 301 ); 
     exit;
}
?>

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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