Dau*_*Rob 9 mysql wordpress .htaccess
一位开发人员在他的本地机器上构建了一个WordPress网站.然后,他将整个安装迁移到服务器上.当然,sql中的所有链接都设置为localhost:8888
.然后我运行SQL更新来修复链接,以便他们指向正确的域(现在是一个ipaddress/~username
链接).我已经仔细检查了我的工作,看起来都很正确.
UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com');
UPDATE wp_options SET option_value = replace(option_value, 'feed://www.olddomain.com', 'feed://newdomain.com');
UPDATE wp_posts SET guid = replace(guid, 'http://olddomain.com','http://newdomain.com');
UPDATE wp_posts SET post_content = replace(post_content, 'http://olddomain.com', 'http://newdomain.com');
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com');
Run Code Online (Sandbox Code Playgroud)
我使用了那种编码,但在那里有适当的域信息.
所以现在发生了什么.
每当我去主页,它都可以工作,但图像不会出现.然后我点击一个链接,或前往teh wp-admin,它会在urlbar中显示两次url.所以它是这样的:
http://newdomain.com/~user/http://newdomain.com/~user/post-name-blah-blah-blah
Run Code Online (Sandbox Code Playgroud)
该.htaccess
文件都是默认的(如果WordPress位于子目录中,它是否应该有一个重写规则,而不仅仅是/?)
什么可能导致网站上的每个链接两次转到同一个网址,如果它们都没有像SQL中那样列出?
更新:
好吧,所以我擦除整个数据库并重置它,然后该网站工作正常.当然这意味着我失去了所有内容.我猜我搞砸了sql查询的某个地方.但我找不到任何有两个网址的地方,或者甚至会造成这种情况.当我弄清楚我的问题时,会有更多更新.
Dau*_*Rob 26
我解决了!希望如果有其他人来到这里并有同样的错误,这将有所帮助.在wp_options
表中,行site_url
和home
需要http://
在它们前面.不知何故,我的sql查询破坏了那部分.当然我没注意到因为地址看起来正确,因为这通常有效.但是在这种情况下,它导致了一个带有一些链接的永无止境的循环,而在其他情况下,它只会使地址加倍.
在进行数据库调整时,您可能会工作,我发现它们存在问题.相反,每当有人移动WordPress网站时,您需要wp-config.php
在以下变量的文件中正确调整WordPress安装中的配置:
define('WP_SITEURL', 'http://newdomain.com/wordpress');
define('WP_HOME', 'http://newdomain.com/');
define('WP_CONTENT_DIR', '/path/to/your/wordpress/wp-content');
define('WP_CONTENT_URL', 'http://newdomain.com/wp-content');
Run Code Online (Sandbox Code Playgroud)
这将强制您的安装使用newdomain.com
URL.此外,当您第一次将RELOCATE
设置设置为true
这样时:
define('RELOCATE', true);
Run Code Online (Sandbox Code Playgroud)
这基本上告诉WordPress重新调整(这是我的技术术语)它是新设置的存储设置.在您重新加载网站并按预期工作后,将RELOCATE
设置设置为false
如下所示:
define('RELOCATE', false);
Run Code Online (Sandbox Code Playgroud)
但你也这样说:
(如果WordPress位于子目录中,是否应该有一个重写规则,而不仅仅是/?)
如果您将WordPress放在子目录中,则必须更改.因此,我们假设WordPress位于一个名为的子目录中coolsite/
.然后.htaccess
从这里更改默认的WordPress :
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Run Code Online (Sandbox Code Playgroud)
对此; 注意我改变RewriteBase
和最后的方式RewriteRule
:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /coolsite/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /coolsite/index.php [L]
</IfModule>
# END WordPress
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11995 次 |
最近记录: |