index.php и проблема в админке, настройка nginx

Для SEO надо сделать редирект на Главную страницу со страницы sitename/index.php (конфиг nginx ниже)

upstream backend-site1 {server unix:/var/run/php5-site1.sock;}

server {
       listen                           80;
       server_name                 sitename;
       rewrite   ^  http://www.sitename$request_uri?;
       }

server {
        listen                          80;
        charset                        utf-8;
        server_name                www.sitename ;
        root                            /var/www/site1/www;
        access_log                 /var/log/nginx/site1-access.log;
        error_log                     /var/log/nginx/site1-error.log;
        index                          index.php index.html;
        rewrite_log                   on;


        location ~* ^/core/ {
                deny                    all;
        }

        location / {
                try_files               $uri $uri/ @rewrite;
        }

        location /index.html {
                rewrite                 / / permanent;
        }

        location ~ ^/(.*?)/index\.html$ {
                rewrite                 ^/(.*?)/ // permanent;
        }

        location @rewrite {
                rewrite                 ^/(.*)$ /index.php?q=$1;
        }

#-- Редирект
        location = /index.php {
                 if ($request_uri = /index.php) {
	                 rewrite ^ http://www.sitename    permanent;     #301 redirect
        }
                include         fastcgi_params;
                fastcgi_pass    backend-site1;
                fastcgi_index   index.php;
                fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        }
# --/Редирект

        location ~ \.php$ {
                include         fastcgi_params;
                fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_pass    backend-site1;
        }

        location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|bmp)$ {
           access_log           off;
           expires                      10d;
           break;
        }
        location ~ /\.ht {
                deny                    all;
        }
}
Появилась проблема — в админке отображается только верхнее меню (сайт при этом работает)
как нужно поправить конфиг, подскажи, пожалуйста.
Михаил
03 августа 2013, 13:03
modx.pro
1
3 102
0

Комментарии: 11

Василий Наумкин
03 августа 2013, 17:23
0
Нельзя делать редирект с index.php — это основной рабочий файл, он лежит в корне и сайта, и админки, и обрабатывает все запросы.

С index.html можно, и как раз на index.php.
    Михаил
    03 августа 2013, 21:55
    0
    то есть?
    всегда надо делать такой редирект, чтобы не было «двух главных » страниц на сайте.
    это делается и на Apache и на Nginx надо так сделать.
    не могу только правильно записать это в конфиге
      Василий Наумкин
      03 августа 2013, 21:58
      0
      Если непонятно, что в корне сайта лежит index.php, принимающий редирект с index.php — не могу больше ничем помочь.
        Михаил
        03 августа 2013, 22:10
        0
        если у меня не правильно записано, скажи как надо, если не затруднительно
          Николай
          04 августа 2013, 12:20
          0
            Михаил
            04 августа 2013, 14:14
            0
            спасибо, но там Apache
              Николай
              04 августа 2013, 14:26
              0
              Пожалуйста, и что дальше? У меня тоже apache
                Михаил
                04 августа 2013, 14:33
                0
                а у меня nginx :)
                  Николай
                  04 августа 2013, 15:05
                  0
                  location / {
                    if ($http_host ~* "^www.site.ru$"){
                      rewrite ^(.*)$ http://site.ru/$1 redirect;
                    }
                  }
                    Михаил
                    04 августа 2013, 15:33
                    0
                    а как вы здесь от /index.php избавились?

                    я сделал так:
                    location = /index.php {
                    	if ($request_uri = /index.php) {
                    		rewrite ^ http://$host? permanent;#301 redirect
                    	}
                    	fastcgi_pass   backend-site1;
                    	fastcgi_index  index.php;
                    	fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                    	include        fastcgi_params;
                    }
                      Константин
                      20 июля 2016, 23:00
                      0
                      Мне хватило только этого )

                      if ($request_uri = /index.php) {
                          rewrite ^ $scheme://$host? permanent;
                      }
                      сразу в секцию server
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
11