php - wordpress wp-admin 重定向到根目录和纯域
问题描述
主要问题
wordpressexample.com/en/wp-admin/
重定向到example.com/wp-admin/
并且/en/
缺少前缀。
描述
你好。我有一个主服务器在example.com
。我想在单独的服务器上提供 wordpress 站点,example.com/en
但 wordpress 位于单独的服务器上。第二个服务器地址是en.example.com
所以我在第二个服务器中使用docker创建了一个wordpress站点,使用我最后记下的docker-compose文件并将主服务器nginx设置为proxy_pass到en.example.com
server {
server_name example.com;
...
location ^~ /en/ {
include proxy_params;
proxy_pass https://en.example.com/;
}
...
}
并在第二台服务器中为 nginx 使用了这个配置:
server {
server_name en.example.com;
location / {
include proxy_params;
proxy_pass http://127.0.0.1:4080; # server port 4080 is maped to container port 80
}
}
在这样做之后,由于在子目录中安装了 wordpress,我遇到了禁止的错误。所以我将容器配置文件中运行的 apache2 从“/var/www/html”更改为“/var/www/html/en”,以查找 http 和 https 的 index.php。
还更改.htaccess
为允许以我在下面写的方式访问 wordpress。.htaccess(在第 3 行和第 7 行添加en/):
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /en/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /en/index.php [L]
</IfModule>
# END WordPress
完成这些之后,我可以安装 wordpress 并从中访问它example.com/en/
,所有链接都很好,并且可以正确使用 example.com/en/。但是有一个大问题。
主要问题
每当我想访问管理页面时,它都会重定向到根域并忽略子目录。这意味着example.com/en/wp-admin/
重定向到example.com/wp-admin/
并且/en/
错过了前缀。我很感激任何帮助。
..................................................... ..................................................... ..................................................... ......................
docker-compose.yml文件,其中包含正确的WP_HOME和WP_SITEURL以及我在互联网上找到的其他一些额外配置:
version: '3'
services:
db:
image: mysql:8.0
container_name: en_db
restart: unless-stopped
env_file: .env
environment:
- MYSQL_DATABASE=enwordpress
volumes:
- en_db:/var/lib/mysql
command: '--default-authentication-plugin=mysql_native_password'
networks:
- en_network
wordpress:
depends_on:
- db
image: wordpress:5.5-apache
container_name: en_wordpress
restart: unless-stopped
env_file: .env
ports:
- 4080:80
environment:
- WORDPRESS_DB_HOST=db:3306
- WORDPRESS_DB_USER=$MYSQL_USER
- WORDPRESS_DB_PASSWORD=$MYSQL_PASSWORD
- WORDPRESS_DB_NAME=enwordpress
- WORDPRESS_CONFIG_EXTRA=
define('WP_SITEURL','https://example.com/en/');
define('WP_HOME','https://example.com/en/');
define('WP_DEBUG', true );
define('RELOCATE', true );
working_dir: /var/www/html/en/
volumes:
- en_wordpress:/var/www/html/en
networks:
- en_network
volumes:
en_wordpress:
en_db:
networks:
en_network:
driver: bridge
解决方案
推荐阅读
- ios - Xcode 12 无法使用 Interface Builder 将子视图添加到滚动视图
- python - 怎么解决 ?(将列表添加到列数据框pyspark)
- scala - Twitter 数据流
- clickhouse - Clickhouse 表 TTL 不删除旧记录
- pandas - 在 pandas apply() 中使用返回多行和多值的函数
- c# - C# ASP.NET Core MongoDB“找不到方法:'MongoDB.Driver.Core.Configuration.ConnectionSettings”
- python - 使用另一个 df 替换列值
- kubernetes - Istio-init 容器已经崩溃 loopbackoff
- function - 两个括号内的自动缩进 - Vim
- node.js - 使用 Nestjs HTTP 模块向 Axios 发出 HTTP 请求时如何正确处理返回的 observable