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;
}
}
Появилась проблема — в админке отображается только верхнее меню (сайт при этом работает)как нужно поправить конфиг, подскажи, пожалуйста.
Комментарии: 11
Нельзя делать редирект с index.php — это основной рабочий файл, он лежит в корне и сайта, и админки, и обрабатывает все запросы.
С index.html можно, и как раз на index.php.
С index.html можно, и как раз на index.php.
то есть?
всегда надо делать такой редирект, чтобы не было «двух главных » страниц на сайте.
это делается и на Apache и на Nginx надо так сделать.
не могу только правильно записать это в конфиге
всегда надо делать такой редирект, чтобы не было «двух главных » страниц на сайте.
это делается и на Apache и на Nginx надо так сделать.
не могу только правильно записать это в конфиге
Если непонятно, что в корне сайта лежит index.php, принимающий редирект с index.php — не могу больше ничем помочь.
если у меня не правильно записано, скажи как надо, если не затруднительно
спасибо, но там Apache
Пожалуйста, и что дальше? У меня тоже apache
а у меня nginx :)
location / {
if ($http_host ~* "^www.site.ru$"){
rewrite ^(.*)$ http://site.ru/$1 redirect;
}
}
а как вы здесь от /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;
}
Мне хватило только этого )
if ($request_uri = /index.php) {
rewrite ^ $scheme://$host? permanent;
}
сразу в секцию server
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.