As you know, WordPress uses quite a lot of external Resources from the Internet – Plugins for example can be installed directly from your WordPress installation by downloading and installing them automatically, without the need to download Plugin installation files and then uploading them manually.

Not to mention that you might need to access external resources to activate a theme, update a plugin and so on.

However, your hosting provider might, for security reasons, require that external HTTP Connections be established over their Proxy server. This is in my experience almost always the case on Windows IIS hosting.

WordPress in general works on IIS well, although you might find there are a few quirks you might need to get used to. For example, it might be that even if you’re on IIS your hosting provider has chosen not to have the IIS URL Rewrite Module installed but instead a Plugin which enables .htaccess redirects, so your htaccess redirects might even work on a shared IIS hosting.

But we are talking now about accessing external resources, aren’t we? So, how to do this in WordPress? It is quite simple, really and there’s no need to write to Support or change general IIS settings. You can simply change WordPress Configuration file and hopefully everything should be fine. So, let’s get started.

Download the wp-config.php file using your favourite FTP Program and there you can add the following lines to configure your Proxy settings:

As always, DO NOT FORGET TO MAKE A BACKUP.

# Defines the proxy address.
define( 'WP_PROXY_HOST',          'proxy-server-of-your-hosting-ptovider' );

# Defines the proxy port.
define( 'WP_PROXY_PORT',          '9000' );

# Define some addresses which 
# shouldn't be passed through a proxy.
define( 'WP_PROXY_BYPASS_HOSTS',  'localhost' );

# Optionally, configure Authentication
# define('WP_PROXY_USERNAME', '');
# define('WP_PROXY_PASSWORD', '');

Replace the placeholders with actual IP address or host name of proxy server, and 9000 with actual port number of the proxy server. 

After you upload the file, hopefully your WordPress installation should be able to access external resources. In rare cases, you might need to define Authentication as well.

Hope this works for you and your WordPress starts working normally.