У меня есть настройка блога wordpress на apache2 (порт 80) в Ubuntu 12.04, у меня также есть настройка nginx, прослушивающая порт 8080, обслуживающий тот же блог. Моя проблема в том, что всякий раз, когда я пытаюсь открыть блог на порту 8080, nginx перенаправляет запросы на apache, чего не должно происходить. Я публикую содержимое / etc / nginx / sites-enabled / wordpress
server {
listen 8080;
root /var/www;
index index.php index.html index.htm;
server_name foobartech.strangled.net:8080;
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;
}
Я также установил cgi.fix_pathinfo = 0
в /etc/php5/fpm/php.ini
Это ограничение в WordPress. Он следует URL-адресу, который вы указали в параметрах, так что каждый запрос / ссылка будет перенаправляться на URL-адрес сайта, который по умолчанию использует порт 80.
Видеть http://wordpress.org/support/topic/alternate-port-setup
Я решил !! вот как:
Отредактируйте файл function.php своей текущей темы и добавьте следующую строку после открывающего тега php remove_filter ('template_redirect', 'redirect_canonical'); Сохранить и выйти
Теперь откройте ваш wp-includes / ms-settings.php и найдите следующую строку (номер строки: ~ 23)
if ( !isset( $current_site ) || !isset( $current_blog ) ) {
после этой строки добавьте:
$_SERVER['HTTP_HOST'] = preg_replace( '|:\d+$|', '', $_SERVER['HTTP_HOST'] );
и сохраните и выйдите. Перезапустите apache2 и nginx и проверьте с помощью curl -I IP, что запросы не перенаправляются.