0

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.

allicarn
  • 2,859
  • 2
  • 28
  • 47

2 Answers2

1

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.

BraveNewCurrency
  • 12,654
  • 2
  • 42
  • 50
  • I used the hosts file method, which worked well. Thanks! The path for me was `C:\Windows\System32\drivers\etc` The search and replace wouldn't work, because a lot of the paths are in the database as absolute paths. Also note that the file for me was actually in localhost/project, which I could not link to in this way unless I went to google.com/project. I resolved this by making it my DocRoot in my httpd.conf file for Apache, so now localhost points to the project folder. – allicarn May 18 '13 at 19:53
0
  • Edit your hosts file.

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)

  • Then you need to tell your apache to recognize requests www.google.com , and to serve it from the directory that would also be used by localhost/project

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>
nl-x
  • 11,762
  • 7
  • 33
  • 61