首页 文章

子文件夹/ wp-admin重定向问题中的Wordpress

提问于
浏览
0

Wordpress网站安装在子文件夹中,我们称之为 my_site

我需要网站在访问域名时加载子文件夹内容(让's say it' s 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]

现在,就内容和网站而言 - 一切正常 . 问题是尝试通过直接转到 https://example.com/wp-admin 登录WP仪表板

浏览器确实加载了标准WP登录屏幕,但在输入我的凭据时,会显示相同的登录表单 - 就像我只是刷新页面一样 .

在首次访问 https://example.com/wp-admin URL并尝试登录后,当我遇到"browser refresh-like"行为时,浏览器中的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 参数内,但我不知道如何摆脱它 .

任何帮助是极大的赞赏!

附: WP_HOMEWP_SITEURL 变量在_38310中设置如此(以http和https为目标):

$hostname = isset( $_SERVER['HTTPS'] ) && strtolower( $_SERVER['HTTPS'] ) == 'on' ? 'https' : 'http';
$hostname .= '://' . $_SERVER['HTTP_HOST'];
define( 'WP_HOME', $hostname );
define( 'WP_SITEURL', $hostname );

1 回答

  • 0

    我有同样的问题 . 你可能已经改为https?解决方案在数据库中 .

    wordpress official site

    在某些情况下,您的博客可以在您的域内查看,但不能在外部查看 . 按照上面有关更改wp-options的说明,MySQL表可能仍会导致登录失败 .

    在这种情况下,请仔细检查您的wp-options表siteurl(WordPress地址URL)和主页(博客地址URL)值,以确保它们引用相同的基本外部可用地址;即,http://blog.yourdomain.com . 标准安装可以将它们设置为本地(内部)主机名,例如http://servername

    另一个问题可能是,如果您使用.htaccess从非www url前缀重定向到www,而您有wp-options表siteurl(WordPress地址URL)和home(博客地址URL)设置为非www前缀 . 因此,这将创建一个您需要避免的无限循环 . 一种方法是通过在行之前放置#或完全删除条目并再次尝试登录来临时禁用.htaccess重定向 . 高级用户可能希望通过数据库调整wp-options表siteurl(WordPress地址URL)和home(博客地址URL) . 请注意,如果您从www重定向到非www但是将您的wp-options表siteurl(WordPress地址URL)和home(博客地址URL)设置为www url前缀,也会发生此问题 .

相关问题