• Здравствуйте, дорогие участники форума. Я установил WordPress на хостинг как описано в инструкции по установке. Это действительно заняло 5 минут, однако при попытке перейти на сайт (зайти на главную или любую внутреннюю) браузер выдает «На этой странице обнаружена циклическая переадресация». И вот с этой проблемой бьюсь уже третий день.

    Погуглил данную проблему, однако не нашел ничего кроме сомнительных предложений выполнить ряд шаманских действий типа «удалить все виджеты», «потыкать в настройки ЧПУ», «проверить файлы дистрибутива на вирусы». Я удалял виджеты, дропал базу данных, перезаливал файлы дистрибутива, тыкал в ЧПУ — ничего не помогло.

    Откуда может возникать циклический редирект с кодом 301 на всех страницах?

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Откуда может возникать циклический редирект с кодом 301 на всех страницах?

    Установите везде одинаково — с ввв или без оного. В тч и в настройках хостинга.

    Поэкспериментировал с настройками хостинга. У меня на 80 порту висит nginx, поэтому apache пришлось запустить на порту 8080. И если отправить запрос на этот порт, предварительно установив его в WP_HOME/WP_SITEURL

    define('WP_HOME', 'http://mysite.domain.ru:8080');
    define('WP_SITEURL', 'http://mysite.domain.ru:8080');

    то все нормально — никаких переадресаций не возникает. А если проксировать запрос через nginx, исправив соответствующим образом WP_HOME/WP_SITEURL

    define('WP_HOME', 'http://mysite.domain.ru');
    define('WP_SITEURL', 'http://mysite.domain.ru');

    то как раз и возникает циклическая переадресация. Вот настройки nginx для домена:

    server {
        listen       80;
        server_name  mysite.domain.ru;
    
        charset utf-8;
        root   /home/alexvr/mysite.domain.ru;
        index  index.php index.html index.htm;
    
        location / {
            try_files $uri $uri/ /index.php;
        }
    
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        location ~ \.php$ {
            proxy_pass   http://127.0.0.1:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    
    дальше настройки страниц ошибок и т.п.

    Как видите, название домена везде одинаковое. Однако явно Вордпрессу что то не нравится в настройках прокси. Понять бы что именно.

    Модератор Yui

    (@fierevere)

    永子

    location ~ \.php$ {}
    блок переместите выше чем

    location / {} его в конец всех правил блока server {}

    ps: еще от любопытных глаз нужны запрещающие правила

    location ~ /\.ht { deny all; }
    location ~ ^/wp-content/cache { deny all; }
    location ~* /(?:uploads|files)/.*\.php$ { deny all; }

    типа такого, их тоже выше location /

    Модератор Yui

    (@fierevere)

    永子

    expires добавляете так
    location ~* ^.+\.(jpg|jpeg|png|ico|gif|swf|woff|ttf|css|js)$ { expires 4w; }

    Доброго всем времени суток. Переместил блоки, все равно не работает. Вот полный текст конфига сайта nginx (доменное имя изменено):

    server {
        listen       80;
        server_name  mysite.domain.ru;
    
        charset utf-8;
        #access_log  /var/log/nginx/log/host.access.log  main;
        root   /home/alexvr/mysite.domain.ru;
        index  index.php index.html index.htm;
    
        #error_page  404              /404.html;
    
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        location ~ \.php$ {
        	proxy_pass   http://127.0.0.1:8080;
    	proxy_set_header Host $host;
    	proxy_set_header X-Real-IP $remote_addr;
        	#access_log  /var/log/nginx/proxy.access.log  main;
        }
    
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
            deny  all;
        }
    
        location ~ /(?:uploads|files)/.*\.php$ {
            deny  all;
        }
    
        location ~ ^/wp-content/cache {
            deny  all;
        }
    
        location / {
    	try_files $uri $uri/ /index.php;
        }
    }

    и конфиг виртуал хоста apache2:

    <VirtualHost *:8080>
    	ServerAdmin webmaster@localhost
    	ServerName mysite.domain.ru
    
    	AddDefaultCharset utf-8
    
    	DocumentRoot /home/alexvr/mysite.domain.ru
    	<Directory />
    		Options FollowSymLinks
    		AllowOverride None
    	</Directory>
    	<Directory /home/alexvr/mysite.domain.ru>
    		Options Indexes FollowSymLinks MultiViews
    		AllowOverride All
    		Order allow,deny
    		allow from all
    	</Directory>
    
    	ErrorLog ${APACHE_LOG_DIR}/error.log
    
    	# Possible values include: debug, info, notice, warn, error, crit,
    	# alert, emerg.
    	LogLevel warn
    
    	CustomLog ${APACHE_LOG_DIR}/access.log vhost_combined
    
    </VirtualHost>

    Проверил: заголовок Host в апач приходит правильный. При этом вордпресс делает циклический редирект, а все остальные php файлы открываются нормально.

    Может быть, кто нибудь знает, в каком файле находится функция, вызывающая этот редирект?

    Модератор Yui

    (@fierevere)

    永子

    вообще у вас миксовый конфиг, такой обычно делают для fastcgi, но не для апача, рецепты в сети сейчас все какие то тоже «слишком умные»

    location / {
            proxy_pass   http://127.0.0.1:8080;
    	proxy_set_header Host $host;
    	proxy_set_header X-Real-IP $remote_addr;
    }

    при отсутствии остальных блоков будет проксировать все на апач
    для статики имеет смысл добавить перед ним еще

    root /usr/share/nginx/html;
    
    location ~* ^.+\.(woff|ttf)$ { expires max; add_header Vary Accept-Encoding; gzip on; }
    location ~* ^.+\.(jpg|jpeg|png|ico|gif|swf)$ { expires 4w; }
    location ~* ^.+\.(css|js)$ { expires 7d; add_header Vary Accept-Encoding; gzip on; }

    дальше тот что выше location /
    все остальное уйдет на апач, со всеми .htaccess правилами и прочими радостями.

    Спасибо, заработало )

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «Циклическая переадресация при просмотре сайта» закрыта для новых ответов.