admin管理员组

文章数量:1130349

New on Nginx based web server setup and finding a way to create mass 301 redirects in a WP site without using any plugins.

It is fairly easy in Apache based web server as you only need to put this at the end of your .htaccess file but this won't work in Nginx:

Redirect 301 /old-url /new-url

New on Nginx based web server setup and finding a way to create mass 301 redirects in a WP site without using any plugins.

It is fairly easy in Apache based web server as you only need to put this at the end of your .htaccess file but this won't work in Nginx:

Redirect 301 /old-url /new-url

Share Improve this question asked Jan 7, 2019 at 4:44 Carl AlbertoCarl Alberto 1,0971 gold badge12 silver badges30 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 0

Seems the easiest way to do it is via PHP without changing any Nginx server config by adding this at the start of the wp-config.php file:

// Trailing slashes matters here so /old1 is different from /old1/
$redirect_targets = array(
  '/old-url' => '/new-url',
  '/old-url2' => '/new-url2',
  '/old-url3' => '/new-url3',
);

// Added a way not to accidentally break wp-cli
if ( (isset($redirect_targets[ $_SERVER['REQUEST_URI'] ] ) ) && (php_sapi_name() != "cli") ) {
  header('HTTP/1.0 301 Moved Permanently');
  header('Location: https://'. $_SERVER['HTTP_HOST'] . $redirect_targets[ $_SERVER['REQUEST_URI'] ]);

  exit();
}

New on Nginx based web server setup and finding a way to create mass 301 redirects in a WP site without using any plugins.

It is fairly easy in Apache based web server as you only need to put this at the end of your .htaccess file but this won't work in Nginx:

Redirect 301 /old-url /new-url

New on Nginx based web server setup and finding a way to create mass 301 redirects in a WP site without using any plugins.

It is fairly easy in Apache based web server as you only need to put this at the end of your .htaccess file but this won't work in Nginx:

Redirect 301 /old-url /new-url

Share Improve this question asked Jan 7, 2019 at 4:44 Carl AlbertoCarl Alberto 1,0971 gold badge12 silver badges30 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 0

Seems the easiest way to do it is via PHP without changing any Nginx server config by adding this at the start of the wp-config.php file:

// Trailing slashes matters here so /old1 is different from /old1/
$redirect_targets = array(
  '/old-url' => '/new-url',
  '/old-url2' => '/new-url2',
  '/old-url3' => '/new-url3',
);

// Added a way not to accidentally break wp-cli
if ( (isset($redirect_targets[ $_SERVER['REQUEST_URI'] ] ) ) && (php_sapi_name() != "cli") ) {
  header('HTTP/1.0 301 Moved Permanently');
  header('Location: https://'. $_SERVER['HTTP_HOST'] . $redirect_targets[ $_SERVER['REQUEST_URI'] ]);

  exit();
}

本文标签: How to create mass 301 redirects with PHP in Nginx server without using a WP plugin