Такой вопрос
Прочитал на хабре, что можно настроить для всех доменов сразу редирект с www на без www
http://habrahabr.ru/post/39801/
В частности предлагается прописать
Чтобы не указывать это правило для каждого домена можно воспользоваться отрицательным регулярным выражением:
server_name ~^(?! www\.);
rewrite ^ http://www.$host$request_uri permanent;
}
Я пытаюсь прописать в конфиге своего нжинса, но как-то, каждый раз разные глюки, то распознать не может, то еще что-то
Вот мой конфиг
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
client_max_body_size 32m;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/vhosts/*/*;
server {
server_name localhost;
disable_symlinks if_not_owner;
listen 80;
include /etc/nginx/vhosts-includes/*.conf;
location fallback {
error_log /dev/null crit;
proxy_pass http://127.0.0.1:8080;
proxy_redirect http://127.0.0.1:8080 /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Secret AEvSidZvUufsMmMB;
access_log off ;
}
}
}
я пытался добавить и после server и ниже acess_log, но все никак
Ошибки в логах
2015/02/28 17:48:53 [emerg] 2082#0: "server_name" directive is not allowed here in /etc/nginx/nginx.conf:52
2015/02/28 18:02:58 [emerg] 2093#0: pcre_compile() failed: missing ) in "^(?!" in /etc/nginx/nginx.conf:41
2015/02/28 18:07:12 [emerg] 2087#0: pcre_compile() failed: missing ) in "^(?!" in /etc/nginx/nginx.conf:53
2015/02/28 18:14:29 [emerg] 2095#0: "server_name" directive is not allowed here in /etc/nginx/nginx.conf:53
2015/02/28 18:23:38 [emerg] 2081#0: pcre_compile() failed: missing ) in "^(?!" in /etc/nginx/nginx.conf:37
Подскажите, куда это правильно надо правильно прописывать. Устал уже методом тыка
Комментарии
Не получится прописать глобально - директива server_name имеет смысл только в контексте секции server.
Т.е. вам придётся прописать такое правило в каждом их ваших конфигов в /etc/nginx/vhosts/*/*
спасибо