$conf, $runtime; function_exists('chdir') AND chdir(APP_PATH); $r = 'mysql' == $conf['cache']['type'] ? website_set('runtime', $runtime) : cache_set('runtime', $runtime); } function runtime_truncate() { global $conf; 'mysql' == $conf['cache']['type'] ? website_set('runtime', '') : cache_delete('runtime'); } register_shutdown_function('runtime_save'); ?>How to create mass 301 redirects with PHP in Nginx server without using a WP plugin|Programmer puzzle solving
最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

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

matteradmin9PV0评论

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();
}
Post a comment

comment list (0)

  1. No comments so far