WordPress reindirizza le connessioni dalla porta 8080 alla 80

20 feb 2014, 17:50:11
Visualizzazioni: 28.5K
Voti: 15

Ho un blog WordPress che viene servito da apache2 (sulla porta 80) e nginx (sulla porta 8080) su Ubuntu 12.04. Quando un client si connette tramite la porta 80 tutto funziona perfettamente, ma quando un client si connette alla 8080 per visualizzare lo stesso blog, la connessione viene reindirizzata ad apache. Perché succede questo? Ho cercato in giro e ho scoperto che questa è una limitazione di WordPress che reindirizza tutte le connessioni all'URL del sito impostato nel dashboard (che è sulla porta 80 di default).

C'è un modo per evitarlo? In modo che le connessioni alla porta 8080 vengano servite da nginx anziché da apache

Contenuto di /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;
}

Qualsiasi aiuto è apprezzato.

3
Commenti

WP può essere configurato per funzionare solo su una porta. Sarà http://mysite.com/ oppure http://mysite.com:8080/ ma non entrambi. Quando qualcuno visualizza WP via 8080 (ma configurato per 80), WP probabilmente mostrerà la pagina ma tutti i link saranno su 80.

user42826 user42826
20 feb 2014 19:01:37

Perché stai cercando di far funzionare il sito in questo modo?

Seamus Leahy Seamus Leahy
21 feb 2014 05:18:11

@user42826 Ho configurato apache per usare la porta 8080 e, come hai descritto, tutti i link a css, immagini e altre risorse sono interrotti. Come suggerisci di risolvere senza rimuovere i redirect? Ho visto molte persone raccomandare di aggiungere :8080 all'URL nelle impostazioni, ma non mi sembra la soluzione corretta. Non dovrei dover configurare WP oltre ad apache, no?

user658182 user658182
3 ott 2014 05:20:06
Tutte le risposte alla domanda 2
1
15

L'ho risolto!! Ecco come:

Modifica il file functions.php del tuo tema corrente e aggiungi la seguente riga dopo il tag PHP di apertura per disabilitare il reindirizzamento canonico.

remove_filter('template_redirect','redirect_canonical'); salva ed esci.

Riavvia apache2 e nginx e verifica con curl -I IP.

20 feb 2014 21:36:39
Commenti

Non è necessario riavviare Apache o Nginx quando si modifica il codice di WordPress.

Marc Marc
19 nov 2023 11:01:39
0

Stesso problema. Nella mia situazione, ho impostato la porta del server a 3030, per ospitare altri server. In ogni caso, senza dover aggiungere alcun codice a file functions.php, ho risolto il problema modificando i valori di site e home nella tabella wp_options con il dominio e l'impostazione della porta.

Ad esempio,

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

Da quel momento tutto sembrava funzionare correttamente.

25 mag 2018 23:36:00