php - 子文件夹/wp-admin 重定向问题中的 Wordpress
问题描述
一个 Wordpress 网站安装在一个子文件夹中,我们称之为my_site
我需要网站在访问域名时加载子文件夹内容(假设它是https://example.com
),因此,我已经.htaccess
像这样设置了我的文件:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/my_site/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /my_site/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ my_site/index.php [L]
现在,就内容和整个网站而言 - 一切正常。问题是尝试通过直接登录到 WP 仪表板https://example.com/wp-admin
浏览器确实会加载标准的 WP 登录屏幕,但在输入我的凭据后,会显示相同的登录表单 - 就像我只是刷新了页面一样。
在第一次访问https://example.com/wp-admin
URL 和尝试登录后,当我遇到“类似浏览器刷新”的行为时,浏览器中的 URL 字符串会自动设置为:
https://example.com/wp-login.php?redirect_to=https%3A%2F%2Fexample.com%2Fmy_site%2Fwp-admin%2F&reauth=1
相同的 URL 解码:
https://example.com/wp-login.php?redirect_to=https://example.com/my_site/wp-admin/&reauth=1
很明显,问题是my_site
附加在redirect_to
参数中,但我不知道如何摆脱它。
任何帮助是极大的赞赏!
PS WP_HOME
andWP_SITEURL
变量的设置wp-config.php
方式如下(针对 http 和 https):
$hostname = isset( $_SERVER['HTTPS'] ) && strtolower( $_SERVER['HTTPS'] ) == 'on' ? 'https' : 'http';
$hostname .= '://' . $_SERVER['HTTP_HOST'];
define( 'WP_HOME', $hostname );
define( 'WP_SITEURL', $hostname );
解决方案
嘿所有你需要删除(www.)?从 RewriteCond 像这样
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com$
RewriteCond %{REQUEST_URI} !^/my_site/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /my_site/$1
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule ^(/)?$ my_site/index.php [L]
其次,如果您通过URL 解码器解码您的 URL
https://example.com/wp-login.php?redirect_to=https%3A%2F%2Fexample.com%2Fmy_site%2Fwp-admin%2F&reauth=1
您会注意到my_site这是不允许重定向到 wp 仪表板的根本原因,因为在 htaccess 中您限制为example.com。
一旦您从 URL 中删除my_site%2F并重新提交登录表单,您肯定会重定向到仪表板。
现在,您只需将重定向 URL 配置为 wp-admin,使其不包含实际的 wordpress 文件夹
推荐阅读
- java - 多边形 Z 排序
- c# - 如何使用 MediaTypeFormatter 将大数据从动作流式传输到响应主体而不将其存储在内存中?
- django - 如果事务失败如何处理事务原子的回滚
- angular - 如何在打字稿中获取下拉(mat-select)选定的项目文本
- javascript - Protractor / Jasmine 中的页面对象导致错误:失败:无法读取未定义的属性“sendKeys”
- opencv - 尝试将 bgr 图像转换为灰度时出现错误
- java - 如何让我的子菜单返回主菜单
- reactjs - React Native 等待函数完成后再继续
- javascript - 当文档值匹配时删除 Firestore 中的文档
- c++ - 如何使函数能够接受原始指针作为迭代器?