0

I have two domains uat1.example.com and uat2.example.com pointing to the same wordpress installation.

I want to change the home_url and site_url for all links on the website to uat2.example.com, but it should not redirect to uat2.example.com if the request comes on uat1.example.com,

So suppose someone visits my website, uat1.example.com; it should load it. But all links on the web page then should point to uat2.example.com. So if the User lands on the page using uat1.example.com and clicks on any link it will send the user to uat2.example.com; that is ok.

I tried putting this in config:

define('WP_HOME','http://uat2.example.com');
define('WP_SITEURL','http://uat2.example.com');

but when I visit uat1.example.com it is redirecting me to uat2.example.com, which is obvious. but I don't want that.

Do we have any trick so that home_url and site_url remains uat2.example.com only? But when I visit uat1.example.com, it doesn't redirect me to uat1.example.com and still consider uat2.example.com as home_url for all links on that page?

2 Answers 2

0

You need to set the WP_SITEURL and WP_HOME in wp-config.php file. Please add below code.

define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);

In your server SSL setup then used below code

define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']);
1
  • As I mentioned, it is already added but this will then change all links on the page to requesting domain. I want to keep my all links pointing to uat2.example.com even though user visits uat1.example.com Commented Jan 10, 2018 at 7:04
0

To achieve the behavior you're looking for—where users accessing uat1.example.com are not redirected but all links on the site point to uat2.example.com—you'll need to use a more dynamic approach rather than hardcoding the home_url and site_url in the wp-config.php. You can accomplish this using a filter in your functions.php file.

Here’s how you can do it:

  1. Remove the define statements from wp-config.php:

    Make sure you don't have the WP_HOME and WP_SITEURL constants set in your wp-config.php because these are causing the redirect behavior.

  2. Add a filter in functions.php to dynamically change home_url and site_url:

    You can use the home_url and site_url filters to change these URLs dynamically based on the current domain:

add_filter('home_url', 'custom_home_url', 10, 2);
add_filter('site_url', 'custom_site_url', 10, 4);

function custom_home_url($url, $path, $orig_scheme, $blog_id) {
    // Check if the current domain is uat1.example.com
    if ($_SERVER['HTTP_HOST'] === 'uat1.example.com') {
        // Replace the host in the URL to point to uat2.example.com
        $url = str_replace('uat1.example.com', 'uat2.example.com', $url);
    }
    return $url;
}

function custom_site_url($url, $path, $scheme, $blog_id) {
    // Check if the current domain is uat1.example.com
    if ($_SERVER['HTTP_HOST'] === 'uat1.example.com') {
        // Replace the host in the URL to point to uat2.example.com
        $url = str_replace('uat1.example.com', 'uat2.example.com', $url);
    }
    return $url;
}

home_url Filter: This filter is applied whenever home_url() is called in WordPress, which generates the home URL of your site. site_url Filter: Similarly, the site_url() filter is used for generating the site URL.

Both functions check if the current domain is uat1.example.com and replace it with uat2.example.com for all generated URLs. However, the page itself will continue to load on uat1.example.com without redirecting.

1
  • Hello! Many of your answers appear to either be AI assisted or AI generated. If this is the case, you do need to disclose which AI tool you've used to generate the information. Otherwise, your answers may be subject to removal.
    – Howdy_McGee
    Commented Aug 26 at 21:56

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.