I am currently doing some minor re-work on a friend's site. I have downloaded what she has currently, but all of the links are absolute links, so whenever I navigate within the locally hosted site, I am pushed to the live site. Instead of overwriting all of those links (on each page, in the database, etc.), I would like to "reroute" any links going to "www.google.com" for example to "localhost/project". Is there an easy way to do this with something like an htaccess file? I should also mention that it is a wordpress site, if there is some other way to go about this.
There are several ways:
1) Edit your /etc/hosts.txt file and add a line for "127.0.0.1 www.google.com". (That file is in system32, I think for windows) Don't forget to remove that entry when you're done.
2) Do a search-and-replace on the files while editing. Something like perl -i.bak -pe 's/www.google.com/localhost/' *.html
would work.
3) Use a proxy that can modify data. https://github.com/evaryont/mousehole
4) Use greasemonkey or similar to modify the page via javascript.
In linux/osx : /etc/hosts (sudo / su to root, to be able to edit it. for example with vi, pico or nano)
In windows : c:\windows\system32\drivers\etc\hosts (open it via Notepad.exe in elevated (admin) priveleges)
You might want to add both google.com as well as www.google.com. (You cannot use wildcards in the hosts file)
In the httpd.conf file (or related file containing vhosts), you need to add something like:
<VirtualHost *:80>
DocumentRoot "C:\MyProjects\Project"
ServerName www.google.com
ServerAlias google.com
<Directory "C:\MyProjects\Project">
Options +Indexes +Includes +ExecCGI
AllowOverride All
</Directory>
</VirtualHost>