Поддомены в одной папке с доменом (nginx)

Подскажите пожалуйста как сделать поддомены в одной папке с доменом конфигурационный файл upstream backend-site {server unix:/var/run/php5-site.sock;}

server { listen 80 default; server_name site.ru www.site.ru sub.site.ru; root /var/www/site/www; access_log /var/log/nginx/site-access.log; error_log /var/log/nginx/site-error.log; index index.php index.html; rewrite_log on; if ($host != 'site.ru' ) { rewrite ^/(.)$ http://site.ru/$1 permanent; } location ~ ^/core/ { deny all; } location / { try_files $uri $uri/ @rewrite; } location /index.html { rewrite / / permanent; }

    location ~ ^/(.*?)/index\.html$ {
            rewrite                 ^/(.*?)/ // permanent;
    }
    location @rewrite {
            rewrite                 ^/(.*)$ /index.php?q=$1;
    }
    location ~ \.php$ {
            include                 fastcgi_params;
            fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_pass    backend-site;
    }
    location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|bmp)$ {
       access_log           off;
       expires                      10d;
       break;
    }
    location ~ /\.ht {
            deny                    all;
    }

} пробовал разные конфигурации но все время перекидывает на основной домен помогите разобраться буду признателен за любую помощь

У вас в общих чертах ОК все, но зачем же вы тогда ограничиваете конфиг всего одним хостом? if ($host != 'site.ru' ) { rewrite ^/(.*)$ http://site.ru/$1 permanent; }

первым делом это попробовал удалил его полностью перезапустил nginx но все равно идет перенаправление на главный домен

у регистратора добавил a запись с поддоменом и ip адресом домена

Все верно.

  1. направить домен и все поддомены на один сервер.
  2. на уровне сервера рулить эти поддомены, направив их в одну папку. Сейчас все работает?

нет это у регистратора добавил a запись с поддоменом и ip адресом домена я еще в самом начале сделал

Я не понял, у вас поддомен sub.site.ru ведет на указанную папку или нет? Что вообще сервер отвечает при запросе?

ну сейчас конфиг выглядит так yadi.sk/i/615xzTF2ep6YD систему настроил так yadi.sk/i/0jKasNZQep6k3 yadi.sk/i/KKuK5tpJep6k7 yadi.sk/i/8fSA1fl1ep6kD стоит xrouting wgame.info/ открывает нормально wgame.info/en/ открывает нормально wot.wgame.info/ неренаправляет на wgame.info в dns прописано a запись типа wot ip адрес сервера а если набрать как www.wgame.info/ то вообще страница не доступна

www. — это тоже поддомен, на минуточку. Его тоже надо прописывать. Добавьте cname-запись Name — *, Hostname — @ joxi.ru/ZrJVWD0uDlkxrj wgame.info/en/ открывает нормально А вот en/ — совсем уж не поддомен, а просто раздел текущего домена. Судя по всему у вас поддомен ведет куда надо, но переброс происходит на уровне веб-сервера, скорее всего или в .htaccess прописан редирект, или сам сайт перебрасывает. Случайно не используется какой-нибудь babel или типа того?

пока нет сегодня с утра полностью переустановил сервер Сервер строится на базе Ubuntu + Nginx + Php5-fpm установил и настроил систему кроме ace и xrouting ничего не устанавливал что интересно но при тех же настройках modx когда стояла vestacp все работало замечательно. но решил попробовать Nginx + Php5-fpm тк говорят что скорость лучше и на когда была установлена vesta то 4-5 раз нажатия на f5 и БД ложилась добавил запись и ничего не поменялось

.htaccess насколько я понял не работает в nginx, так что он стандартный # MODX supports Friendly URLs via this .htaccess file. You must serve web

pages via Apache with mod_rewrite to use this functionality, and you must

change the file name from ht.access to .htaccess.

Make sure RewriteBase points to the directory where you installed MODX.

E.g., "/modx" if your installation is in a "modx" subdirectory.

You may choose to make your URLs non-case-sensitive by adding a NC directive

to your rule: RewriteRule ^(.*)$ index.php?q=$1 [L,QSA,NC]

RewriteEngine On RewriteBase /

Rewrite www.domain.com -> domain.com -- used with SEO Strict URLs plugin

#RewriteCond %{HTTP_HOST} . #RewriteCond %{HTTP_HOST} !^example-domain-please-change.com [NC] #RewriteRule (.*) http://example-domain-please-change.com/$1 [R=301,L]

or for the opposite domain.com -> www.domain.com use the following

DO NOT USE BOTH

#RewriteCond %{HTTP_HOST} . #RewriteCond %{HTTP_HOST} !^www.example-domain-please-change.com [NC] #RewriteRule (.*) http://www.example-domain-please-change.com/$1 [R=301,L]

Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent

https://www.domain.com when your cert only allows https://secure.domain.com

#RewriteCond %{SERVER_PORT} !^443 #RewriteRule (.*) https://example-domain-please-change.com/$1 [R=301,L]

The Friendly URLs part

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Make sure .htc files are served with the proper MIME type, which is critical

for XP SP2. Un-comment if your host allows htaccess MIME type overrides.

#AddType text/x-component .htc

If your server is not already configured as such, the following directive

should be uncommented in order to set PHP's register_globals option to OFF.

This closes a major security hole that is abused by most XSS (cross-site

scripting) attacks. For more information: http://php.net/register_globals

To verify that this option has been set to OFF, open the Manager and choose

Reports -> System Info and then click the phpinfo() link. Do a Find on Page

for "register_globals". The Local Value should be OFF. If the Master Value

is OFF then you do not need this directive here.

IF REGISTER_GLOBALS DIRECTIVE CAUSES 500 INTERNAL SERVER ERRORS :

Your server does not allow PHP directives to be set via .htaccess. In that

case you must make this change in your php.ini file instead. If you are

using a commercial web host, contact the administrators for assistance in

doing this. Not all servers allow local php.ini files, and they should

include all PHP configurations (not just this one), or you will effectively

reset everything to PHP defaults. Consult www.php.net for more detailed

information about setting PHP directives.

#php_flag register_globals Off

For servers that support output compression, you should pick up a bit of

speed by un-commenting the following lines.

#php_flag zlib.output_compression On #php_value zlib.output_compression_level 5

The following directives stop screen flicker in IE on CSS rollovers. If

needed, un-comment the following rules. When they're in place, you may have

to do a force-refresh in order to see changes in your designs.

#ExpiresActive On #ExpiresByType image/gif A2592000 #ExpiresByType image/jpeg A2592000 #ExpiresByType image/png A2592000 #BrowserMatch "MSIE" brokenvary=1 #BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1 #BrowserMatch "Opera" !brokenvary #SetEnvIf brokenvary 1 force-no-vary

ЗАРАБОТАЛО wot.wgame.info/ никуда не перебрасывает, осталось с www разобраться чтоб был редирект на домен и вообще отлично будет. Спасибо вам огромное Николай

Николай правильно ли я понял что для www нужно тоже добавить a запись типа www ip адрес

Да, правильно. И как это сделать правильней на digitalocean.com, я написал выше.