将站点复制到localhost,但链接或映像的URL基础不正确

时间:2014-03-05 23:41:48

标签: php wordpress

我刚刚从实际网站上提取了一份副本,并使用XAMPP在本地安装。目录是:

127.0.0.1/website-files/websitename

主页拉得很好,但没有图片加载。链接也不起作用。图像和链接URL未更新以反映新目录。它们仍显示为:

/categoryname/pagename

而不是

/website-files/websitename/categoryname/pagename

网站是wordpress,一般设置已更新:

Wordpress地址http://127.0.0.1/website-files/websitename

网站地址http://127.0.0.1/website-files/websitename

我把它添加到functions.php中,我假设它会做我需要的所有更改:

update_option('siteurl','http://127.0.0.1/website-files/websitename');
update_option('home','http://127.0.0.1/website-files/websitename');

.htaccess看起来像这样:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /website-files/websitename/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /website-files/websitename/index.php [L]
</IfModule>

每次我将网站移动到新的开发服务器时都会遇到问题,但这是第一次。我在这里缺少什么?

2 个答案:

答案 0 :(得分:0)

避免对您网站的任何链接使用前导/,而不是:

 <a href="/foo">foo</a>
 <img src="/images/bar.jpg">

这样做:

 <a href="foo">foo</a>
 <img src="images/bar.jpg">

最后,您可能希望尝试在HTML的顶部添加“base href”标记,根据您正在运行的服务器,该标记具有不同的值。快速谷歌基础href将教你如何工作。

您可能需要重新构建网页构建方式以实现此目的。如果您希望能够在多个服务器上运行单个网站,那就简单了。

如果你正在使用Wordpress或其他类似的开源框架,你可能会被搞砸。其中一些根本无法在多台服务器上运行。

答案 1 :(得分:0)

尝试确认已在本地数据库的home表中更新了siteurlwp_options

或者,您可以尝试设置WP_HOMEWP_SITEURL以指向wp-config.php中的本地文件。这将覆盖选项表中的设置。

define('WP_HOME', 'http://127.0.0.1/website-files/websitename');
define('WP_SITEURL', 'http://127.0.0.1/website-files/websitename');