WordPress,反向代理-对不起,您无权访问此页面

问题描述

我正在Docker容器中运行Wordpress。可通过反向代理访问。但是,安装后,当尝试访问wp-admin部分时,我看到“抱歉,您不能访问此页面。”。安装完成,确定,创建了表,站点的前端看起来不错。

我的管理员用户似乎井井有条(?)

mysql> select id from wp_users where user_login = 'martyn';
+----+
| id |
+----+
|  1 |
+----+
1 row in set (0.00 sec)

mysql> select * from wp_usermeta where user_id = 1 and meta_key = 'wp_capabilities';
+----------+---------+-----------------+---------------------------------+
| umeta_id | user_id | meta_key        | meta_value                      |
+----------+---------+-----------------+---------------------------------+
|       12 |       1 | wp_capabilities | a:1:{s:13:"administrator";b:1;} |
+----------+---------+-----------------+---------------------------------+
1 row in set (0.00 sec)

因为我要通过反向代理访问该网站,所以在安装之前必须对wp-config.php文件进行一次更改,否则会阻止混合内容(样式表等)。当我添加此行时,安装页面看起来应为:

// added to end of file
if ( (!empty( $_SERVER['HTTP_X_FORWARDED_HOST'])) ||      (!empty( $_SERVER['HTTP_X_FORWARDED_FOR'])) ) {     $_SERVER['HTTPS'] = 'on'; }

如果我现在删除此行,则wp-admin页显示浏览器错误-刷新过多。

此外,我尚未安装任何插件或主题,仅使用上述内容修改了wp-config文件。

我检查了网站URL的选项是否按顺序排列:

mysql> select option_name,option_value from wp_options where option_value like '%martyn%';
+-------------+---------------------------+
| option_name | option_value              |
+-------------+---------------------------+
| siteurl     | https://example.com       |
| home        | https://example.com      |
| blogname    | Martyn                    |
| admin_email | [email protected]        |
+-------------+---------------------------+

请注意,HTTPS网址已被写入。

如果有帮助,这是我使用proxypass的apache配置:

<Virtualhost *:80>
    ServerName        www.example.com
    ServerAlias        example.com
    ProxyRequests     Off
    ProxyPreserveHost On
    AllowEncodedSlashes NoDecode

    SSLProxyEngine On
    SSLProxyCheckPeerCN on
    SSLProxyCheckPeerExpire on

    <Proxy http://localhost:8001/*>
      Order deny,allow
      Allow from all
    </Proxy>

    ProxyPass         /  http://localhost:8001/ nocanon
    ProxyPassReverse  /  http://localhost:8001/

    RewriteEngine on
    RewriteCond %{SERVER_NAME} =www.example.com [OR]
    RewriteCond %{SERVER_NAME} =example.com
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</Virtualhost>

那我为什么不能访问wp-admin?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)