【问题标题】:Access Wordpress WP-Admin through /admin URL通过 /admin URL 访问 Wordpress WP-Admin
【发布时间】:2019-07-26 13:57:34
【问题描述】:

我想通过不同的 URL 访问我的 /wp-admin,例如 /admin

如果我执行localhost:5000/admin,我会被重定向到localhost:8000/wp-admin,要求我应该在那个确切的 URL 上看到 Wordpress 管理面板。

我正在使用docker-composenginx

我的nginx.conf 文件如下所示:

events { worker_connections 1024; }
http{
  include       /etc/nginx/mime.types;
  default_type  application/octet-stream;
  server {
    listen 80;
    listen [::]:80;

    server_name localhost;

    location ~* /admin {
        rewrite ^/admin/(.*) /wp-admin last;
        proxy_pass http://wordpress;
        proxy_set_header Access-Control-Allow-Origin *;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;


    }
  }

}

我的 docker-compose.yml 文件是:

version: '2'
services:
  db:
    image: mysql:5.6
    restart: unless-stopped
    volumes:
      - ./backend/db/db_data:/var/lib/mysql
      - ./backend/db/init.sql:/docker-entrypoint-initdb.d/init.sql
    environment: 
      MYSQL_ROOT_USER: root
      MYSQL_ROOT_PASSWORD: p4ssw0rd!
      MYSQL_DATABASE: wordpress

  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    restart: unless-stopped
    ports:
      - 8081:80
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: p4ssw0rd!



  wordpress:
    depends_on:
      - phpmyadmin
      - db
    image: wordpress
    restart: unless-stopped
    volumes:
      - ./backend/wordpress/wp-content:/var/www/html/wp-content
      - ./backend/wordpress/.htaccess:/var/www/html/.htaccess
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_PASSWORD: p4ssw0rd!
      WORDPRESS_TABLE_PREFIX: ab_
      WORDPRESS_CONFIG_EXTRA:
        define('JWT_AUTH_SECRET_KEY', 'secret');
        define('JWT_AUTH_CORS_ENABLE', true);
        define('WP_ALLOW_REPAIR', true );
    ports:
      - 8000:80 # Expose http and https
      - 8001:443

  nginx:
    build: ./backend/nginx
    volumes:
      - ./backend/nginx/nginx.conf:/etc/nginx/nginx.conf
    ports:
      - "5000:80"
    links: 
      - wordpress
      - frontend
    depends_on: 
      - wordpress
      - frontend

不是nginx 专家,因此我们不胜感激。

【问题讨论】:

  • 试试:rewrite ^/admin(/.*)?$ /wp-admin$1 break;
  • 如果我这样做,我会被重定向到http://localhost/wp-admin/

标签: wordpress docker nginx docker-compose


【解决方案1】:

也试试这个过滤器

function custom_admin_url($path) { 
    return str_replace('wp-admin', 'admin', $path); 
}
add_filter('admin_url', 'custom_admin_url');

【讨论】:

  • 将其添加到主题的functions.php文件中
  • 我没有主题,因为我使用 Wordpress 作为无头 CMS,是否可以将其放在其他地方?
  • 在这种情况下尝试将其添加为插件,这是一个必须使用的插件,它将始终被激活。在 wp-content/mu-plugins 创建新的 php 文件并在那里添加代码。如果 mu-plugins 不存在,则创建目录。 Wordpress 将自动执行该文件。
猜你喜欢
  • 1970-01-01
  • 2016-09-24
  • 1970-01-01
  • 1970-01-01
  • 2018-12-13
  • 2012-07-12
  • 2021-11-20
  • 2020-09-01
  • 1970-01-01
相关资源
最近更新 更多