У меня проблемы с простым 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;
....
....
}