Вопщем нужно сделать два сайта (вит.хоста) на одном IP. Стоит nginx+Fast-cgi+ssl как правильно настроить Rewrite в конфиге nginx? Нужно сделать так, что при любом http запросе к любому домену кидало в корни сайтов на скрипты redir.php, а от туда уже идёт переадресация по https протоколу на корневые индексы сайтов (index.php) Чтоб было яснее привожу конфиг: Code: user www-data; worker_processes 4; worker_rlimit_nofile 32768; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; limit_zone one $binary_remote_addr 10m; limit_conn one 5; access_log /var/log/nginx/access.log; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 60; tcp_nodelay on; gzip on; server { listen 80; server_name site_name1; fastcgi_intercept_errors on; access_log /var/log/nginx/site_name1.access.log; location / { root /var/www; #if (!-f $request_filename){ #if ($request_uri !~ google) #rewrite ^.*$ /redir.php ; #break; #} rewrite ^.*$ /redir.php ; index index.html index.htm index_x.php index.php; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} #redirect /redir.php$ /.php rewrite ^.*$ /redir.php; #if ($request_uri !~ google) # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index redir.php; fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name; fastcgi_param HTTPS on; include /etc/nginx/fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } server { listen 80; server_name site_name2; fastcgi_intercept_errors on; access_log /var/log/nginx/site_name2.access.log; location / { root /var/www/site_name2; #if (!-f $request_filename){ #if ($request_uri !~ google) #rewrite ^.*$ /redir.php; #break; #} rewrite ^.*$ /redir.php; index index.html index.htm index_x.php index.php; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/site_name2; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} #redirect /redir.php$ /.php rewrite ^.*$ /redir.php ; #if ($request_uri !~ google) # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index redir.php; fastcgi_param SCRIPT_FILENAME /var/www/site_name2/$fastcgi_script_name; fastcgi_param HTTPS on; include /etc/nginx/fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # server { listen 443; server_name site_name1; ## ssl on; ssl_certificate cert.crt; ssl_certificate_key cert.key; ssl_session_timeout 5m; # ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on; # fastcgi_intercept_errors on; access_log /var/log/nginx/site_name1.access.log; location / { root /var/www; index index.html index.htm index_x.php index.php; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name; include /etc/nginx/fastcgi_params; } } server { listen 443; server_name site_name2; ## ssl on; ssl_certificate cert.crt; ssl_certificate_key cert.key; ssl_session_timeout 5m; # ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on; # fastcgi_intercept_errors on; access_log /var/log/nginx/site_name2.access.log; location / { root /var/www/site_name2; index index.html index.htm index_x.php index.php; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/site_name2/$fastcgi_script_name; include /etc/nginx/fastcgi_params; } } } Щас в принципе почти всё работает, но в одном случае при запросе http://site_name2 редиректит на https://site_name2/site_name2 При запросе http://site_name2/бла-бла-бла любое - работает всё верно, т.е. выходим на http://site_name2/redir.php и там уже на пыхе редирект на https. Подскажите где косяк? И второй вопрос: возможно ли сделать так чтоб вирт-хотсты на nginx работали по https с разными сертификатами и ключами?
Wolf PHP: <?php $text=' <select name="select"> <option value="dfcgh">dft</option> <option value="fgb">dfghb</option> <option value="fgh">f</option> </select> 1. <select name="cid" onChange="checkRubr(this.value,\'sel2\');"><option value="10">гостинки 2. <option value="11">1-комн. кв. 3. <option value="12">2-комн. кв. 4. <option value="13">3-комн. кв. 5. <option value="14">4-комн. кв. 6. <option value="15">5-комн. кв. 7. <option value="16">6-комн. кв. 8. <option value="20">дома, коттеджи, дачи 9. <option value="25">за рубежом 10. <option value="30">земельные участки 11. <option value="40">коммунальные квартиры 12. 13. <option value="50">подселение 14. <option value="60">помещения 15. <option value="0">прочее 16. </select><br><br> <select name="select"> <option value="dfcgh">dft</option> <option value="fgb">dfghb</option> <option value="fgh">f</option> </select> <select name="select"> <option value="dfcgh">dft</option> <option value="fgb">dfghb</option> <option value="fgh">f</option> </select> '; $m = explode('select', $text); foreach($m as $v) if(strstr($v, 'name="cid"')) $text = $v; preg_match_all('/<option value="(.+)">.+\r\n/',$text, $a); print_r($a); ?>
парсинг даных Парни появился еще вопрос по perl авторизировался на сайте но нужно спарсить некоторые данные Например как в вк друзей и рейтинг. что то не как не пойму как ето сделать. подскажите пожалуста вот блок с которого нужно спарсить красным пометил даные которые нужно спарсить. уже пол дня пробую и нефига(
Code: $text =~ /<div id="moneyInfo">.*?<span><\/span>(\d+\.)<small>(\d+)<\/small>.*?<\/div>/smi; my $first = $1 . $2; print $first, "\n"; my ($second) = $text =~ /<span id="votesInfoCount">(\d+)<\/span>/; print $second, "\n"; 0.04 0
еще 1 вопросик по парсингу пробывал как показала товарищ krypt3r но тут так не получается попробовал вот так. но не получается
PHP: preg_match('/<div><h2>Друзья <span>\((.*)\)<\/span><\/h2><\/div>/', $result, $res); я так понял,что тебе нужно подсчитать кол-во друзей вк я уже написал )
благодарю. да именно на перле.. хм.. почему то постоянно оишбка при попытке сохранить или показать значение ошибка
Я никогда не работал с mod_rewrite, поэтому не могу понять одну хрень: Code: RewriteEngine on Options +FollowSymLinks RewriteRule ^id/(.*)$ /product.php?id=$1 мне нужна вот такая вещь, всё конечно работает, но ссылки у меня на странице вида Code: <a href="link.php"></a> и оно преобразовывает их к Code: <a href="http://hostname.ru/id/link.php"></a> а нужно Code: <a href="http://hostname.ru/link.php"></a>
мой код ошибки syntax error at , near "=~|" unrecognized character \xC4 in column 61 at 61 ето между > и Друзья
Есть что то типа elseif((!preg_match("!^[a-z1-9@\\*\\)\\(\\?\\!\\-_\\]\\[=~]+$!i",$user))) {вывод о не верном вводе} Надо из этого как то получить что бы юзер мог быть и русскими символами и латинскими, но только что бы либо то либо другое, что бы нельзя было мешать букВаВки. поДмогите кто чем может, уже хз скок сижу над этим