wordpress重定向到根url而不是子文件夹url时保存设置/选项

zd287kbt  于 2022-12-11  发布在  WordPress
关注(0)|答案(1)|浏览(106)

我已经自定义了WordPress地址和网站地址如下:
WordPress地址(网址)https://example.com/blog
站点地址(URL):https://example.com/blog
一切都很好,当我访问博客时,我可以看到文章,我可以导航等等,
我甚至可以通过https://example.com/blog/wp-admin访问我的wp-admin,导航 Jmeter 板等,
唯一的问题是重定向URL时,我保存的东西,如编辑主题,并点击“保存”或编辑一般设置:
例如,如果我转到设置〉常规并尝试更新任何选项,在单击**“保存”**按钮后,它会提交表单,然后将我重定向到:
如果您是一名用户,请点击这里
代替
如果您是一名用户,请点击这里
下面是我的.htaccess的外观:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>

此外,当我去主题定制器和悬停在“退出/关闭”按钮,它显示了错误的网址(没有/博客)

奇怪的是,有另一个按钮来自定义的主题在 Jmeter 板:

当我使用此按钮并单击customizer的close/cancel时,返回的url是正确的,因此我注意到通过 Jmeter 板菜单访问customizer有一个参数?return=/wp-admin,而上面的蓝色按钮没有!
由于某些原因,如果param?return=/wp-admin在链接中,wordpress将重定向到主域并忽略子文件夹url!

4uqofj5v

4uqofj5v1#

解决方案#1 -代码更改

这就是我如何解决这个问题,这可能不是正确的方式,但得到的工作完成。
如果你看到wp_referer_field的文档,你会发现它在wp-includes/functions.php中定义
所以我所做的就是

$referer_field = '<input type="hidden" name="_wp_http_referer" value="' . esc_attr( wp_unslash( $_SERVER['REQUEST_URI'] ) ) . '" />';

$referer_field = '<input type="hidden" name="_wp_http_referer" value="/blog' . esc_attr( wp_unslash( $_SERVER['REQUEST_URI'] ) ) . '" />';

它在隐藏字段的value属性中有一个额外的路径,即e /blog,这解决了我的目的。

解决方案2-重写规则(未测试)

我必须执行解决方案1,因为我的主网站已经有重写规则,我无法修改它来重写www.example.com的缺失路径mysite.com/blog。可能原始问题中的重写规则也设置不正确,或者可能有其他配置文件与重写规则冲突。
如果不是这样,你应该试着按照WordPress的官方文章写正确的重写规则-
https://wordpress.org/support/article/giving-wordpress-its-own-directory/#method-i-without-url-change

RewriteRule ^(.*)$ /my_subdir/$1

相关问题