【发布时间】:2022-01-10 14:30:30
【问题描述】:
首先,如果有类似的线程,我很抱歉,但我无法弄清楚以下问题的正确方法是什么:
我不知道如何正确更改我的 .htaccess 文件,以便以下条件起作用:
我在一个域下有 2 个独立的 WordPress 实例。 (比方说:example.com)
- 旧实例托管在此处:example.com/old/
- 新实例托管在此处:example.com/new/
我访问 example.com 时的当前行为:
- 当我访问 example.com 时,它会重定向到旧实例。 浏览器显示:example.com/old
访问 example.com 时的期望行为:
- 它重定向到 example.com/new/
- 从 url 中隐藏子文件夹路径 (/new),以便在地址栏中只有 example.com 可见(或除 /new/ 之外的任何其他部分)。
我的第一种方法是在 /old/.htaccess 中添加以下行:
Redirect 301 / https://example.com/new/
然后,它将 example.com 重定向到:example.com/new/old/,导致 404。 由于 .htaccess 文件在 /old/ 和 /new/ 中看起来有点相同,我无法弄清楚具体定义在哪里,example.com/ 默认重定向到 /old/。
这里是每个实例和根文件夹的 .htaccess 内容:
.htaccess-content / (根)
# -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>
非常感谢任何帮助。
谢谢。
【问题讨论】:
标签: wordpress apache .htaccess redirect mod-rewrite