我通过代理设置了wordpress。我的主网站上的网址是https://DOMAIN/blog
以下是为我的代理设置的apache:
SSLEngine on
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName
SSLProxyCheckPeerExpire off
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /blog/ https://104.xxx.xx.xx/
ProxyPassReverse /blog/ https://104.xxx.xx.xx/
这工作正常。当我转到https://DOMAIN/blog时,它代表我https://104.xxx.xx.xx,因为它应该
wordpress的前端实际上完美无缺,完全没有问题。
当我转到https://DOMAIN/blog/wp-admin时,问题在于管理员。它登录确定,但它会将我重定向到https://DOMAIN/wp-admin和404s(因为https://DOMAIN/wp-admin未被代理)
这是我的.htaccess for 104.xxx.xx.xx
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
</IfModule>
我已经尝试过改变.htaccess关于我能想到改变的每一种方式(设置RewriteBase / blog /,弄乱我的重定向规则,以及其他一千种东西)。
感谢您的帮助!
答案 0 :(得分:1)
您已在自己的评论中找到解决方案: &#34;(因为DOMAIN / wp-admin不代理)&#34;
wp-admin区域本身就是域子文件夹,因此必须代理。 或者您必须告诉您的代理将DOMAIN / wp-admin的所有请求重建为DOMAIN / blog / wp-admin。
您对博客计算机上的.htaccess所做的更改无效,因为对DOMAIN / wp-admin的请求未被代理,也从未到达您的博客服务器。
我刚刚发现了一个更优雅的答案,我想分享Bukky: WordPress, nginx proxy and subdirectory: wp-login.php redirects to domain
(编辑wp-config.php的那个)