Назад | Перейти на главную страницу

Nginx просто перенаправляет старый URL-адрес на новый URI

У меня проблемы с простым SEO-перенаправлением. Веб-страница изменилась, и я хочу перенаправить старые uris на новые. Например, я хотел бы перенаправить / связаться с /contact.html

я пробовал

location = /contact {
    rewrite ^ /contact.html permanent;
}

Но похоже, что это не работает, и Nginx продолжает передавать запрос фронт-контроллеру Zend (PHP).

Вот моя текущая конфигурация (без перезаписи)

server {
    listen *:80;
    server_name www.domain1.com domain1.com domain2.com www.domain2.com;

    error_log /var/log/nginx/domain1.error.log notice;

    root /home/domain1/www/public/;

    client_max_body_size 22M;

    #domain redirect
    if ($host != 'www.domain1.com' ) {
        rewrite ^/(.*)$ http://www.domain1.com/$1 permanent;
    }

    location / {
        index index.php;
    }

    # html cache static content
    location ~* \.(js|css|rdf|xml|ico|txt|gif|jpg|png|jpeg|swf|eot|ttf|woff)$ {
        expires 30d;
    }

    rewrite /path1/(\w*)/\w*\.(\w*) /path2/$1.$2;

    #Zend front controller
    if (!-e $request_filename) {
        rewrite ^.*$ /index.php last;
        break;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9200;
        fastcgi_param SCRIPT_FILENAME /home/domain1/www/public$fastcgi_script_name;
        fastcgi_param APPLICATION_ENV production;
        include /etc/nginx/fastcgi_params;
    }
}

Я бы сделал это попроще и поместил бы в начало вашего / местоположения

location / {
    rewrite  ^/contact$  /contact.html  permanent;

    ....
    ....
}