web-dev-qa-db-fra.com

Redirigeant Wordpress les connexions sur les ports 8080 à 80

J'ai un blog wordpress qui est servi par Apache2 (sur le port 80) et nginx (sur le port 8080) sur Ubuntu 12.04. Maintenant, chaque fois qu'un client se connecte via le port 80, tout se passe bien, mais lorsqu'un client se connecte à 8080 pour afficher le même blog, la connexion est redirigée vers Apache. Pourquoi cela arrive-t-il? J'ai cherché autour et trouvé qu'il s'agissait d'une limitation de Wordpress qui redirige toutes les connexions vers l'URL du site définie dans le tableau de bord (le port 80 par défaut).

Y a-t-il un moyen de contourner ceci? que les connexions au port 8080 seraient servies par nginx plutôt que par Apache

Contenu de/etc/nginx/sites-enabled/wordpress

server {
listen   8080;

root /var/www;
index index.php index.html index.htm;

server_name abc.com;

location / {
        try_files $uri $uri/ /index.php?q=$uri&$args;
}

location /doc/ {
        alias /usr/share/doc/;
        autoindex on;
        allow 127.0.0.1;
        deny all;
}

error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;
location = /50x.html {
        root /usr/share/nginx/www;
}

location ~ \.php$ {

        try_files $uri =404;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param   SERVER_PORT 8080;
        port_in_redirect off;
}

Toute aide est appréciée.

9
calypso

Je l'ai résolu !! Voici comment:

Modifiez le functions.php de votre thème actuel et ajoutez la ligne suivante après la balise d'ouverture PHP pour désactiver la redirection canonique.

remove_filter('template_redirect','redirect_canonical'); save and exit.

Redémarrez Apache2 et nginx et vérifiez avec curl -I IP.

10
calypso

Même problème. Dans ma situation, j’ai défini le port du serveur sur 3030, afin de prendre en charge d’autres serveurs. Quoi qu'il en soit, sans avoir à ajouter de code à aucun fichier functions.php, j'ai résolu le problème en modifiant les valeurs de site et d'accueil de la table wp_options en définissant le paramètre de domaine et de port.

Par exemple,

site     http://localhost:3030
home     http://localhost:3030

Tout semblait bien fonctionner à partir de là. ????

1
seebiscuit