Puncte:1

pagină wordpress, postați adresa URL pe nginx în interiorul containerului docker, redirecționați automat către domeniul rădăcină cu starea 301

drapel cn

Am configurat cu succes un site wordpress care rulează pe un nginx dockerizat. Când site-ul wordpress este în funcțiune, pot merge la pagina de pornire: https://domeniul_meu.com sau orice link-uri sau după wp-admin/... fără nici o problemă.

Dar când merg la https://domeniul_meu.com/sample-page sau https://domeniul_meu.com/post-id redirecționează imediat către domeniul rădăcină http://domeniul_meu.com

postare wordpress nginx, adresa URL a paginii redirecționează automat la domeniul rădăcină

cu excepția rutei /wp-admin/ când este accesat redirecționează corect către https://my_domain.com/wp-admin/login.php dacă nu te-ai autentificat și la https://domeniul_meu.com/wp-admin/ dacă sunteți autentificat

Iată configurația mea nginx la /nginx/default.conf:

Server {
    asculta 80;
    asculta [::]:80;
    nume_server domeniul_meu.com www.domeniul_meu.com;

    Locație / {
        returnează 301 https://my_domain.com$request_uri;
    }
}


Server {
    asculta 443 ssl http2;
    asculta [::]:443 ssl http2;
    nume_server domeniul_meu.com www.domeniul_meu.com;

    index index.php index.html index.htm;

    rădăcină /var/www/html/wordpress;

    ssl activat;
    server_tokens dezactivat;
    ssl_certificate /etc/nginx/ssl/live/my_domain.com/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/live/my_domain.com/privkey.pem;
    ssl_dhparam /etc/nginx/dhparam/dhparam-2048.pem;

    ssl_buffer_size 8k;
    ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
    ssl_prefer_server_ciphers activat;
    ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;

    add_header X-Frame-Options „SAMEORIGIN” întotdeauna;
    add_header X-XSS-Protection „1; mod=bloc” întotdeauna;
    add_header X-Content-Type-Options „nosniff” întotdeauna;
    add_header Politica de referință „no-referrer-when-downgrade” întotdeauna;
    add_header Content-Security-Policy "default-src * data: 'unsafe-eval' 'unsafe-inline'" întotdeauna;
    # add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" întotdeauna;
    # activați securitatea strictă a transportului numai dacă înțelegeți implicațiile


    Locație / {
          try_files $uri $uri/ /index.php$is_args$args;

          proxy_pass http://wordpress_host:80; 
          proxy_set_header Gazdă $http_host;
          proxy_set_header X-Forwarded-Proto $schema;
    }

    locație ~ \.php$ {
          try_files $uri =404;
          fastcgi_split_path_info ^(.+\.php)(/.+)$;
          proxy_pass http://wordpress_host:80;
          fastcgi_index index.php;
          include fastcgi_params;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          fastcgi_param PATH_INFO $fastcgi_path_info;

          proxy_set_header Gazdă $http_host;
          proxy_set_header X-Forwarded-Proto $schema;
    }

    locație ~ /\.ht {
          nega totul;
    }
        
    locație = /favicon.ico { 
          log_not_found off; access_log off; 
    }

    locație = /robots.txt { 
          log_not_found off; access_log off; permite tuturor; 
    }

    locație ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
          expira max;
          log_not_found off;
    }
}

Configurez și la wp-config.php:

define('FORCE_SSL_ADMIN', true); 

if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') 
$_SERVER['HTTPS']='activat';

define('WP_SITEURL', 'https://www.my_domain.com/');
define('WP_HOME', 'https://www.my_domain.com/');

Actualizați:

Aici fișierul de compunere docker:

versiunea: '3';
Servicii:
  nginx:
    imagine: nginx:stable-alpine
    porturi:
      - „80:80” # nginx ascultă pe 80
      - „443:443”
    volume:
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
      - ./wordpress/app:/var/www/html/wordpress
  db:
    imagine: mysql:8.0
    container_name: db-example
    reporniți: dacă nu este oprit
    fișier_env: ./wordpress/app/.env
    mediu inconjurator:
      - MYSQL_DATABASE=exemplu
    volume:
      - ./wordpress/dbdata:/var/lib/mysql
      #- ./wordpress/db/db.sql:/docker-entrypoint-initdb.d/install_wordpress.sql #dacă aveți db.sql de intrare pentru proiect aici
    comandă: „--default-authentication-plugin=mysql_native_password”

  wordpress_host:
    depinde de:
      - db
    imagine: wordpress
    container_name: wordpress_host
    porturi:
      - „8080:80”
    reporniți: dacă nu este oprit
    fișier_env: ./wordpress/app/.env
    mediu inconjurator:
      - WORDPRESS_DB_HOST=db:3306
      - WORDPRESS_DB_USER=rădăcină
      - WORDPRESS_DB_PASSWORD=rădăcină
      - WORDPRESS_DB_NAME=exemplu
    volume:
      - ./wordpress/app:/var/www/html/wordpress
volume:
  wordpress-host:
  dbdata

: fișier .env:

MYSQL_ROOT_PASSWORD=rădăcină
MYSQL_USER=exemplu
MYSQL_PASSWORD=parolă
drapel in
Configurați adresa URL corectă în WordPress.
drapel in
Consultați https://serverfault.com/questions/955478/how-to-retain-domain-name-in-url-configuring-virtual-host-in-apache-2-with-aws/957005#957005
Kim Mỹ avatar
drapel cn
trebuie să adaug www https://i.stack.imgur.com/FvBkp.png
drapel in
Vă rugăm să adăugați mai multe informații despre containerul WordPress. Este o imagine oficială? Dacă da, adăugați toate variabilele env pe care le-ați furnizat pentru aceasta. Dacă nu, adăugați configurația serverului web din acel container. Puteți edita întrebarea pentru a oferi mai multe informații.
Kim Mỹ avatar
drapel cn
Am actualizat întrebările cu fișierul docker-compose
Kim Mỹ avatar
drapel cn
și fișierul envrionment .env

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.