Closed lingchen-jiager closed 1 year ago
感谢指出。现在已经做了修改,会在发布时判断 setting 里面 url 是不是以 / 结尾。请方便的话帮忙测试下。感谢!
PS:/index.php 可以通过 nginx 或者 apache 的 URL 重写去除,可以直接使用域名,而不需要显式写出 /index.php
我刚刚试了一下,我还是使用的REST API这个模式。 setting里面的url末尾加不加“/”确实不影响正常登陆了。 但是好像出现了新问题。
简言之就是记住用户名和密码功能出问题,虽然能显示,但是点登录会提示"未设置用户名密码"。 具体表现: 我勾选了记住username和password,填入用户名和密码,可以正常登录,重新打开obsidian,在登陆界面,明明显示了用户名和密码,不知道为啥点击登录会弹出"未设置用户名密码"。清空用户名和密码框重新填写就又能登录。但是如果再重开obsidian,虽然在用户名密码框里显示了之前填入了的信息,点登录依然会弹出"未设置用户名密码",还得重新输入用户名和密码。
您说可以使用nginx的url重写去除index.php,我还没尝试。但是我下好这个插件新版本后,在只填写了域名,没有写index.php的情况下,点登录,不像上一个版本一样毫无提示,给的提示是”用户名或者密码错误“。但是错误类型提示的不对,我的username和password是正确的,应该是因为没写index.php导致字符串拼接后的api路径不正确。
一、 rest api这种方式应该不用安装miniorange插件就可以使用吧?我尝试过在关掉miniorange插件的情况下使用您这个插件登录发表也是可以登陆的,但是那样的话用户名和密码不是wordrpress后台的密码,而是要在wordpress后台>用户>个人资料里面申请应用程序名和密码。
而且用fiddler抓包看提交的数据也是把应用程序名和密码使用base64编码并提交。”不用miniorange插件直接用应用程序名和密码登录“和”安装miniorange启用基本认证使用wordpress后台密码登录"相比,这两种方式比较起来后者的安全性更高吗,为什么您会推荐再额外安装这个插件呢? 二、 我看简睿学堂的视频和其他博主的视频推荐插件的时候都是直接在setting里面加域名就ok,他们也没介绍额外的nginx设置呀,为啥我的还需要加上index.php才能登录,是wordpress版本不同的原因吗?还是php版本的原因?亦或者是其他原因,如果您知道的话还望指教。我的wordpress是6.1.1版本,php比较老是7.4版本。
感谢回复!
如果没错的话,nginx 配置里面应该有类似下面的片段:
location / {
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass php-fpm;
fastcgi_index index.php;
include fastcgi_params;
}
我猜您的配置可能缺少try_files
这个指令。
感谢回复。 虽然还不知道啥原因,但是我在网上搜了下“wordpress index.php”找了个回答,按照步骤设置,现在加或不加index.php都可以登陆发布文件了。是不是您那边也是加不加index.php都可以登陆呀,如果是这样的话,不如直接在默认设置里建议大家写上加上index.php,或者在默认设置还是直接写域名,作者在源码里加上index.php,省的像我这种情况的,半天找不到错误在哪里。还避免了我这种情况下,因为没加index.php导致即使输入正确密码和用户名也会弹出——”用户名或者密码错误“的问题。
另外我要提醒一下,如果要使用应用程序名和密码登录,在wordpress后台个人资料页面申请应用程序的用户名不是乱取的,我尝试了几次,应该是wordpress后台登录的用户名,也可能是所有用户中任意一个用户名都ok,但我就一个用户,所以无从测试。
有关 index.php,我觉得这是站点设置的问题,不应该由插件去做过多的判断。如果你的站点没有做伪静态,那么就自己在 URL 里面添加 index.php,否则就不需要。
另外,有关应用程序密码的问题,注意到 WordPress 生成应用程序密码的表单实际是在用户编辑的页面,因此这个应用程序密码应该是属于用户的;其作用就是为了隐藏真实的个人密码。类似微软或者 QQ 邮箱提供的应用程序密码功能。所以用户名只能是这个密码所隶属的真实用户名。
应用程序密码的支持已经添加到插件中了,可以测试一下。
0.7.0版本,经测试:
另外我纠正一下我之前的错误,以防误导以后看到的人:
另外我要提醒一下,如果要使用应用程序名和密码登录,在wordpress后台个人资料页面申请应用程序的用户名不是乱取的,我尝试了几次,应该是wordpress后台登录的用户名,也可能是所有用户中任意一个用户名都ok,但我就一个用户,所以无从测试。
在wordpress后台个人资料页面申请应用程序的用户名可以任意取,只是在使用此插件登陆、发布文章的时候用户名要填写“登录wordpress后台的用户名”,密码就填写“应用程序密码”就ok。
我试了好久,死活登陆不上去,最后配合fiddler抓包看请求的网址,才发现问题。 我的api是”我的域名/index.php/wp-json/wp/v2/posts“ 如果直接输域名就少个”index.php“,就访问不到。需要输入”https://www.xxx.com/index.php/“才能正常登录。 另外提示大家一下setting里面最后的”/“需要输入,不输入,拼接的字符串成了/index.phpwp-json/wp/v2/posts,也登陆不上。