.htaccess 从一个 Wordpress 实例重定向到另一个实例的正确方法?

.htaccess correct way to redirect from one Wordpress instance to another?

首先,如果有类似的帖子,我很抱歉,但我无法弄清楚以下问题的正确方法是什么:

我不知道如何正确更改我的 .htaccess 文件,以便满足以下条件:

我在一个域下有 2 个独立的 WordPress 实例。 (比方说:example.com)

访问时的当前行为 example.com:

当我访问 example.com 时所需的行为:

我的第一个方法是在 /old/.htaccess 中添加以下行:

Redirect 301 / https://example.com/new/

但随后,它将 example.com 重定向到:example.com/new/old/ 导致了 404。 由于 .htaccess 文件在 /old/ 和 /new/ 中看起来有点相同,我无法弄清楚 example.com/ 默认情况下重定向到 /old/ 的确切定义。

以下是每个实例和根文件夹的 .htaccess 内容:

.htaccess-content / (root)

# -FrontPage-

IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*

<Limit GET POST>
order deny,allow
deny from all
allow from all
</Limit>
<Limit PUT DELETE>
order deny,allow
deny from all
</Limit>

.htaccess-content /old/(旧实例)

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/
RewriteRule .* - [CO=wordpress_test_cookie:WP+Cookie+check:%{HTTP_HOST}:1440:/]

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

# END WordPress

.htaccess-content /new/(新实例)

#BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /new/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /new/index.php [L]
</IfModule>

# END WordPress

<IfModule mod_rewrite.c>
    RewriteEngine On
    
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
    Header always set Content-Security-Policy "upgrade-insecure-requests;"
</IfModule>

非常感谢任何帮助。

谢谢。

您需要在 old/. htaccess 中使用 RewriteRule 而不是 Redirect 。 RewriteRule 可以将请求从您的 old 目录映射到 new 目录而不更改 URL.

RewriteEngine On

RewriteCond %{REQUEST_URI} !/new [NC]
RewriteRule ^(.*)$ /new/ [L]

这应该放在您的 /root 目录中的 htaccess 中,并记住将其放在顶部或其他重写指令之前。

还可以通过转到 WordPress 仪表板中的 settings->general 来更改“WordPress 主页 URL”和“站点地址”。 您可以使用 https://example.com 作为 WordPress 主页 URL 和 https://example.com/new 作为您的 WordPress 站点地址。

告诉我它是如何为你工作的。