Wordpress przekierowuje połączenia na portach 8080 do 80


9

Mam blog wordpress obsługiwany przez apache2 (na porcie 80) i nginx (na porcie 8080) na Ubuntu 12.04. Teraz za każdym razem, gdy klient łączy się przez port 80, wszystko jest okropne, ale gdy klient łączy się z 8080, aby wyświetlić ten sam blog, połączenie zostaje przekierowane do apache. Dlaczego to się dzieje? Rozejrzałem się i odkryłem, że jest to ograniczenie Wordpress, które przekierowuje wszystkie połączenia z adresem URL witryny ustawionym na pulpicie nawigacyjnym (domyślnie jest to port 80).

Czy jest na to jakiś sposób? że połączenia z portem 8080 będą obsługiwane przez nginx zamiast apache

Zawartość / 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;
}

Każda pomoc jest mile widziana.


2
WP można skonfigurować tylko na jeden port. Będzie to albo mysite.com albo mysite.com:8080, a nie oba. Gdy ktoś wyświetli WP przez 8080 (ale skonfigurowany na 80), WP prawdopodobnie wyświetli stronę, ale wszystkie linki będą miały 80.
user42826

Dlaczego próbujesz uruchomić witrynę w ten sposób?
Seamus Leahy

@ user42826 Skonfigurowałem apache do używania 8080 i, jak opisano, wszystkie linki do css, obrazów i innych zasobów są zepsute. Jak sugerujesz naprawę, która nie usuwa przekierowań? Widziałem wiele osób zalecających dodanie: 8080 do adresu URL w ustawieniach, ale to nie wydaje się właściwe. Nie powinienem konfigurować WP oprócz apache, nie?
user658182

Odpowiedzi:


11

Rozwiązałem to !! Oto jak:

Edytuj bieżący motyw functions.phpi dodaj następujący wiersz po otwierającym tagu PHP, aby wyłączyć kanoniczne przekierowanie.

remove_filter('template_redirect','redirect_canonical'); Zapisz i wyjdź.

Uruchom ponownie apache2 i nginx i sprawdź za pomocą curl -I IP.


1

Taki sam problem. W mojej sytuacji ustawiam port serwera na 3030, aby pomieścić inne serwery. W każdym razie, bez konieczności dodawania kodu do żadnych functions.phpplików, rozwiązałem problem, zmieniając wartości witryny i home w wp_optionstabeli na ustawienie domeny i portu.

Na przykład,

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

Odtąd wszystko wydawało się działać dobrze. 👍

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.