20 февр. 2015 г., 15:23

Поддомены в одной папке с доменом (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, я написал выше.

Добавить комментарий