这是我的配置文件:
server {
listen 80;
server_name moule-a-manque.com;
access_log /var/log/nginx/myvps.com.access.log;
error_log /var/log/nginx/myvps.com.error.log;
client_max_body_size 4M;
client_body_buffer_size 128k;
expires off;
rewrite http://www.moule-a-manque.com http://moule-a-manque.com permanent;
location / {
root /var/www/mom;
index index.html index.php;
}
我认为应该可行,但当我在http://nibbler.silktide.com/reports/moule-a-manque.com查看时,似乎说重定向无效。
我是直接做这个吗?如果是这样,怎么能确保301重定向确实有效
答案 0 :(得分:2)
nginx中的重写指令仅匹配url的路径部分,而不是主机名。看起来你正试图强迫no-www,这是通过使用第二个服务器{}:
来实现的server {
server_name www.moule-a-manque.com;
rewrite ^ http://moule-a-manque.com$request_uri? permanent;
}
server {
listen 80;
server_name moule-a-manque.com;
access_log /var/log/nginx/myvps.com.access.log;
error_log /var/log/nginx/myvps.com.error.log;
client_max_body_size 4M;
client_body_buffer_size 128k;
expires off;
root /var/www/mom;
index index.html index.php;
}
此外,通常最好将根设置在某个位置之外。请参阅http://wiki.nginx.org/Pitfalls。