重写安装在子目录中的wordpress站点的规则(不是多站点)

时间:2017-04-27 12:20:48

标签: wordpress .htaccess

我已经从我需要处理的服务器上复制了一个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>

1 个答案:

答案 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。 (不评论,删除)

参考文献: How to change URL using RELOCATE method