Have you ever encountered a case where you want to access your WordPress site from multiple site URLs (for example a local URL and an external URL, or multiple external URLs)?
Solution
Change the Site URL and Home URL to a relative URL, making the domain name irrelevant to loading the site. Oh, but it can’t be as simple as updating that on the Settings->General admin page, no…WordPress requires a valid URL. Well don’t give up, you’ll just have to hack the option directly in the database.
- Connect to your WordPress database using a web-based utility like phpMyAdmin or another SQL client such as HeidiSQL.
- Open your
wp_options
table for editing (if applicable, use your table prefix instead ofwp_
). - Find the rows with an
option_name
ofsiteurl
orhome
and change theoption_value
of each to/
if WordPress is installed in the root of your website or/path/to/wordpress
if your WordPress site is installed in a sub-directory. Do NOT add a trailing slash. - For those wanting to execute a simple SQL query, here is an example:
UPDATE wp_options SET option_value = '/' WHERE option_name IN('siteurl', 'home');
- Test your site out by going to your site URLs (for example http://192.168.0.1, http://mywebserver.local, http://www.example.com).
Important Note: This method is a hack and therefore isn’t a behavior WordPress developers intended. I wouldn’t recommend it for a production site. I have noticed that after making this change on a site that the admin login page lacks CSS, the toolbar on the Visual Editor is missing, and the front-end admin bar sometimes fails to be styled and shows at the bottom on pages. I haven’t seen any issues with the normal front-end site that visitors see. So be aware of some admin CSS problems.
Hope that tip can help some of you out, I know it was useful to me.
Jenny Repair says
Just added you to definitely my favorite blogs. Keep these posts coming!
Quinten says
I also updated the dashboard_widget_options option as well. Not sure if this had any impact but I’m now running the admin section with no dramas from multiple URL’s.
This query will help you find any references to you siteurl/home urls:
Replacing “http://192.168.1.1” with your current siteurl.
The following query can be used to update any reference:
NOTE: I’m going from http://192.168.1.1/wordpress/ to /wordpress/
Stephen Cotton says
Sooo, I stumbled upon the same solution as you did around the same time. We use subversion internally, so those links have to be cleared out to / whenever we start a new project. The one thing that was bugging me though was that when the site url is a /, a number of wordpress default scripts and styles become relative links instead of absolute links.
So, for example, jquery. It should include /wp-includes/js/jquery/jquery.js, but instead it takes whatever url you are on and tacks on the /wp-includes/js…. This means that on a page like /contact-us, jquery was being search for at /contact-us/wp-includes/js…. While I typically replace jquery with the most recent version for the theme of the site, I still needed to find a solution for the other default scripts and stylesheets. Finally, I figured it out:
I hope this helps someone out and saves them the headaches I have had over it!
Josh Hartman says
I’ll have to try this out, thanks Stephen!