2014-05-16 4 views
0

ОС: Ubuntu 14.04 LTSПочему Nginx перенаправить весь поддомен к не-WWW, я просто установив переадресацию WWW к не-WWW

Nginx версия: 1.6.0

Я хочу, чтобы перенаправить WWW к не-WWW, но следующая конфигурация перенаправляет весь поддомен на не-www.

, например, посещаю test.mydomain.com/index.php также перенаправлять mydomain.com/index.php

визит ip_address/index.php также перенаправлять mydomain.com/index.php, тест на FF 26 и Chrome 34, но IE11 не перенаправляется.

http { 
    gzip    on; 
    include    mime.types; 
    sendfile   on; 
    default_type  application/octet-stream; 
    keepalive_timeout 65; 

    server { 
    listen  80 default_server; 
    server_name mydomain.com; 
    root   /var/www; 

    location ~* \.php$ { 
     fastcgi_index index.php; 
     fastcgi_pass unix:/var/run/php-fpm.sock; 
     include   fastcgi_params; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     fastcgi_param SCRIPT_NAME  $fastcgi_script_name; 
    } 

    location/{ 
     index  index.html index.htm index.php; 
    } 

    error_page 404    /404.html; 
    error_page 500 502 503 504 /50x.html; 
    } 

    server { 
    server_name www.mydomain.com; 
    listen 80; 
    return 301 http://mydomain.com$request_uri; 
    } 
} 
+0

Прошу прощения за мой английский. Я хочу только перенаправить www на не-www. другой поддомен не перенаправляется. – consatan

+0

попытайтесь поставить 'return 301 ...' в 'if ($ http_host ~ *^www \ .mydomain \ .com $) {' [here] '}'. Я не вижу ошибок в конфиге. – Deadooshka

+0

@Deadooshka Прошу прощения !! Я тестирую на своем ноутбуке Windows 8.1, устанавливая локальные dns на файле% windir% \ system32 \ drivers \ etc \ hosts, он не работает. Я попытался использовать завиток на Ubuntu vm с локальными dns/etc/hosts, это работа. Я устанавливаю локальные DNS на моем маршрутизаторе Asus RT-N16 (с прошивкой AsusWRT Merlin), работайте над обоими и сейчас. Я хочу добавить комментарий, но я не могу войти вчера, thx китайский GWF !!! – consatan

ответ

0

Ваше Перенаправление определено в данном разделе

server { 
    server_name www.mydomain.com; 
    listen 80; 
    return 301 http://mydomain.com$request_uri; 
} 

удалить линию возврата 301 http://mydomain.com $ REQUEST_URI; и это должно удалить перенаправление.

Если это единственный сайт на сервере, вы можете удалить этот весь серверный блок, потому что корень и расположение для обработки php определены в блоке server {} над этим.

Смежные вопросы