我已经从我需要处理的服务器上复制了一个wordpress站点并将其设置在localhost上,wordpress文件夹被设置为root的子目录。
我唯一的问题是我的链接重定向到根而不是wp文件夹,例如。和文件路径中没有wp文件夹名称。
示例:
ht.p://localhost/wpfolder/wp-content/themes/tbt/_inc/js/functions.js
应该是:
ht.p://localhost/root/wpfolder/wp-content/themes/tbt/_inc/js/functions.js
我已经遵循了代码https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory#Using_a_pre-existing_subdirectory_install中的所有指令,并且一切正常,除了我一直在努力让我的链接和文件重定向到正确的文件路径。
我已保存常规设置,刷新固定链接并按此顺序重新启动服务器。我还确认正在阅读htaccess并且数据库正在被正常阅读,并且wp-admin中提供了所有帖子。
令人困惑的是,即使服务器上的原始站点已在子目录中安装了wp,我也看不到它的重定向方式。本地副本的站点结构如下:
/localhost/site_root/wpfolder
和原始:
user@domain/public_html/wpfolder
导出db时我设置的地址如下:
网站地址
remote://www.domain.com,
local:// localhost / siteroot /
WP ADDRESS remote:/ home / siteuser / public_html, local:/ siteroot / wpfolder (我不明白为什么这不指向原始网站上的子目录?)
远程root的htaccess:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} /order-online/order-now/
RewriteRule ^(.*)$ https://www.sitename.com.au/order-online/order-now/$1 [R,L]
# 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
并在迁移数据库并在wp-admin中保存所有设置后自动写入root的本地htaccess:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} /order-online/order-now/
RewriteRule ^(.*)$ https://www.originalsitedomain.com/order-online/order-now/$1 [R,L]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /siteroot/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /siteroot/index.php [L]
</IfModule>
# END WordPress
我在root的本地index.php(与remote相同):
require( dirname( __FILE__ ) . '/wpfolder/wp-blog-header.php' );
目前,例如,不是我的链接将我带到localhost / site_root / link,而是转到localhost / link和404'ing。
我无法让这个工作,因为我不完全理解它:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^localhost/siteroot$
RewriteCond %{REQUEST_URI} !^/wpfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /wpfolder/$1
RewriteCond %{HTTP_HOST} ^localhost/siteroot$
RewriteRule ^(/)?$ wpfolder/index.php [L]
</IfModule>
但它不是原始网站的htaccess(为什么我不明白)。我所有出于对jeebus的热爱的想法,任何人都可以帮助上面的重写或建议我可能做错了什么?
如果我能提供更多信息,请告诉我。
感谢。
编辑:如果我只是复制原始网站,我无法理解为什么会出现问题!原始链接或URL的NOne以根文件夹为前缀。
EDIT2:404的一些示例html。仅显示标题(由于require( dirname( __FILE__ ) . '/wpfolder/wp-blog-header.php' )
)。
的header.php
if (!is_404() && $ie7==false && !isset($_GET['preview'])) {
echo '<script src="/tbtwp/wp-content/themes/tbt/_inc/js/functions.js"></script>';
}
MENU:
<div class="menu">
<ul>
<li class="nav-home <?php if(is_front_page()){ echo 'current_page_item' ; }?>"><a tabindex="1" href="/" title="home">Home</a></li>
<li class="nav-about-us"><a tabindex="1" href="/about-us/" title="about-us">About Us</a></li>
<li class="nav-the-store"><a tabindex="1" href="/the-store/" title="the-store">The Store</a></li>
<li class="nav-catering"><a tabindex="1" href="/catering/" title="catering">Catering</a></li>
<li class="nav-order-online <?php if(is_page('order-online/order-now')){ echo 'current_page_item' ; }?>"><a tabindex="1" href="/order-online/" title="order-online">Order Online</a></li>
<li class="nav-our-stories"><a tabindex="1" href="/our-stories/" title="our-stories">Our Stories</a></li>
<li class="nav-contact"><a tabindex="1" href="/contact/" title="contact">Contact</a></li>
</ul>
</div>
答案 0 :(得分:1)
对我有用的是遵循“重新定位”替代方案。
您可以在wp-config中定义RELOCATE true。 然后在浏览器中输入您当地的wp-login.php网址并登录。 检查浏览器中的URL是否为本地URL。 转到常规设置并查看网站网址和wp网址。 网站网址通常没有安装wh的子文件夹。而wp url会。 然后保存您的设置。 如果你使用固定链接去永久链接设置并保存它们。
最后一部分是将.htaccess和index.php从wordpress文件夹复制到根文件夹,然后编辑index.php:
它显示require('./wp-blog-header.php');
将其更改为require('./<replace with wp subfolder name>/wp-blog-header.php');
非常重要!: 最后删除define('RELOCATE',true);来自wp-config。 (不评论,删除)