How to create mass 301 redirects with PHP in Nginx server without using a WP plugin

admin2025-06-04  3

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();
}
转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1749037430a315825.html

最新回复(0)