Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将页面上的所有链接重新路由到本地主机_Php_Wordpress_.htaccess_Reroute - Fatal编程技术网

Php 将页面上的所有链接重新路由到本地主机

Php 将页面上的所有链接重新路由到本地主机,php,wordpress,.htaccess,reroute,Php,Wordpress,.htaccess,Reroute,我目前正在一个朋友的网站上做一些小的重新工作。我已经下载了她目前拥有的内容,但是所有的链接都是绝对链接,所以每当我在本地托管的站点中导航时,我都会被推到实时站点。我不想覆盖所有这些链接(在每个页面上,在数据库中,等等),我想“重新路由”任何链接到“www.google.com”,例如“localhost/project”。有没有一种简单的方法可以使用htaccess文件这样的东西来实现这一点?我还应该提到的是,如果有其他方法,这是一个wordpress网站。有几种方法: 1) 编辑您的/etc/

我目前正在一个朋友的网站上做一些小的重新工作。我已经下载了她目前拥有的内容,但是所有的链接都是绝对链接,所以每当我在本地托管的站点中导航时,我都会被推到实时站点。我不想覆盖所有这些链接(在每个页面上,在数据库中,等等),我想“重新路由”任何链接到“www.google.com”,例如“localhost/project”。有没有一种简单的方法可以使用htaccess文件这样的东西来实现这一点?我还应该提到的是,如果有其他方法,这是一个wordpress网站。

有几种方法:

1) 编辑您的/etc/hosts.txt文件,并为“127.0.0.1 www.google.com”添加一行。(该文件位于system32中,我认为适用于windows)完成后别忘了删除该条目

2) 编辑时对文件执行搜索和替换。类似于
perl-i.bak-pe's/www.google.com/localhost/'*.html
的东西可以工作

3) 使用可以修改数据的代理

4) 使用greasemonkey或类似工具通过javascript修改页面。

  • 编辑您的主机文件
在linux/osx:/etc/hosts中(sudo/su到root,以便能够对其进行编辑。例如,使用vi、pico或nano)

在windows中:c:\windows\system32\drivers\etc\hosts(通过提升(管理)权限中的Notepad.exe打开)

您可能希望同时添加google.com和www.google.com。(不能在主机文件中使用通配符)

  • 然后,您需要告诉您的apache识别www.google.com请求,并从localhost/project也将使用的目录提供服务
在httpd.conf文件(或包含vhost的相关文件)中,需要添加如下内容:

<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>

DocumentRoot“C:\MyProjects\Project”
服务器名www.google.com
服务器别名google.com
选项+索引+包含+执行CGI
允许超越所有

我使用了hosts文件方法,效果很好。谢谢我的路径是
C:\Windows\System32\drivers\etc
搜索和替换不起作用,因为数据库中有很多路径是绝对路径。还请注意,我的文件实际上位于localhost/project中,除非我转到google.com/project,否则我无法以这种方式链接到该文件。我在Apache的httpd.conf文件中将其作为我的DocRoot文件解决了这个问题,因此现在localhost指向项目文件夹。感谢您提供有关添加google.com和www.google.com的提示!