1. Мы продолжаем публиковать интересные статьи на тему SocialEngine 4. Одна из статей посвящена правильному выбору сервера для вашей социальной сети, а другая содержит советы по увеличению производительности платформы. Также мы добавили большую статью о пользовательских уровнях. Ознакомиться со статьями вы можете в разделе Вопросы и Ответы SocialEngine 4.
  2. Вам кажется, что ваша версия SocialEngine 4, работает медленно?

    Голосуйте. Пишите свою версию системы, железо на чем работает и количество пользователей. Будем увеличивать производительность :-) Подробнее

  3. В связи с участившимися случаями попыток продажи пользователями форума различных "сборок" коммерческих социальных платформ, обычно основанных на SocialEngine 3, вводится новое правило для форума. Запрещается создание тем или размещение в уже созданных предложений о продаже или размещение ссылок на сайты, где происходит продажа "сборок". Пользователи, которые продолжат свою коммерческую деятельность в данном направлении, будут заблокированы. Подробнее.

Реврайт имени пользователя в субдомен.

Discussion in 'Хаки - Haks' started by MechanisM, Oct 17, 2009.

  1. MechanisM Thread starter Пользователь


    Offline
    • Banned
    Message Count:
    17
    Likes Received:
    1
    Rewrite Username to Subdomain. Реврайт имени пользователя в субдомен.


    Сначала вам нужно сделать ВайлдКард субдомен: " *.yoursite.com" тоесть создайте субдомен со звездочкой.
    Вам нужно добавить код в .htaccess чтобы среврайтить юзернэйм в субдомен.
    Например:
    было http://yoursite.com/UserName а будет http://[color=#FF0000]UserName[/color].yoursite.com

    в настройках апача в виртуалхосте нужно прописать еще ServerAlias например часть моего:
    смотрите на *.мой-сайт.ком
    Code:
    <VirtualHost *:80>
      ServerName www.мой-сайт.ком
      ServerAlias мой-сайт.ком
      ServerAlias *.мой-сайт.ком
      DocumentRoot "E:/WWW/www/"
      CustomLog logs/мой-сайт.ком_access.log combined
      ErrorLog logs/мой-сайт.ком_error.log
    </VirtualHost>
    
    ищем в .htaccess код:
    Code:
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^/]+)/?$ /profile.php?user=$1 [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^/]+)/([^/]+)?$ /profile.php?user=$1$2 [L]
    
    
    заменяем его на:
    Code:
    RewriteCond %{REQUEST_URI} !^/profile\.php 
    RewriteCond %{HTTP_HOST} !^www\. 
    RewriteCond %{HTTP_HOST} ^(.+)\.yoursite\.com
    RewriteRule .* /profile.php?user=%1 [L] 
    
    RewriteCond %{REQUEST_URI} !^/profile\.php 
    RewriteCond %{HTTP_HOST} !^www\. 
    RewriteCond %{HTTP_HOST} ^(.+)\.yoursite\.com
    RewriteRule .* /profile.php?user=%1%2 [L] 
    

    ну естественно ваш домен тут нужно прописать.

    далее открываем include/class_url.php



    находим и меняем весь блок function url_create($file, $user)
    на:
    Code:
    function url_create($file, $user)
      {
       global $setting;
    
       $url_conversion = $this->convert_urls[$file];
       if( $setting['setting_url'] == 1 )
        {
         
         if(isset($url_conversion['url_subdomain']))
         {
         $new_url = '';
         $this->url_base = "http://".$user.".".$_SERVER['HTTP_HOST'].$server_info."/";
         }
         else 
         $new_url = $url_conversion['url_subdirectory'];
         
    }
        else
        {
         $new_url = $url_conversion['url_regular'];
         
         
       }
    
       $num_args = func_num_args();
       $search = Array('$user');
       $replace = Array($user);
       for($a=2;$a<$num_args;$a++)
        {
         $search[] = '$id'.($a-1);
         $replace[] = func_get_arg($a);
         $arg.=func_get_arg($a);
       }
        
       $new_url = str_replace($search, $replace, $new_url);
          return $this->url_base.$new_url;
    }
    
    

    далее в этом-же файле находим function &getSettings() там есть код:
    Code:
    // Special case -_-
            $url_settings['profile'] = array(
              'url_regular' => 'profile.php?user=$user',
              'url_subdirectory' => '$user/'
            );
     
    меняем его на:
    Code:
    
    // Special case -_-
            $url_settings['profile'] = array(
              'url_regular' => 'profile.php?user=$user',
              'url_subdirectory' => '$user/',
              'url_subdomain' => '$user'
            );
    
    ну и остается автозаменой текста во всех файлах сменить ссылки с относительных на полный путь. тоесть например найти:
    ./images/ и заменить это на http://yoursite.com/images/
    так-же со ссылками на misc_js.php идт итп в меню вверху тоже.
    иначе все будет ссылаться на несуществующие директории.
    ибо зайдя на профиль http://[color=#FF0000]UserName[/color].yoursite.com
    картинка уже будет искаться тут http://[color=#FF0000]UserName[/color].yoursite.com/images...
    ибо в СЕ ведь прописаны относительные URL.
    это все несложно сделать программами автозамены такими как текст реплэйсер итд.
    лично у меня все отлично работает.
    далее хочу сделать субдомен URL для альбомов итд
    например albums.yoursite.com/UserName... blogs.yoursite.com/UserName итд

    З.Ы. c class_url.php помогал мне товарищ Gumslone, за что ему спасибо!
    ExTRANE likes this.
  2. SpartakuS User


    Offline
    • Знаменитый
    Message Count:
    797
    Likes Received:
    82
    Молодца.
  3. Alex User


    Offline
    Message Count:
    24
    Likes Received:
    0
    Что то у меня не пашет .. А можно демо ?
    А в nginx тестировали ?
  4. MechanisM Thread starter Пользователь


    Offline
    • Banned
    Message Count:
    17
    Likes Received:
    1
    в NGINX еще нет :) но уже установил себе связку nginx+apache и протестирую..
    скорее-всего нужна дополнительная настройка субдоменов в NGINX
    либо попробуй так-же и там прописать типа *.сайт.ком
  5. zver1k Novice member


    Offline
    Message Count:
    5
    Likes Received:
    0
    сможешь помочь с .htaccess под nginx?

    а то при включение ЧПУ не работают ссылку, все время на гланую выбрасывает
  6. MechanisM Thread starter Пользователь


    Offline
    • Banned
    Message Count:
    17
    Likes Received:
    1
    я даже не знал что у nginx есть .htaccess хммм..ты не путаешь??
    у него свой собственный реврайт модуль и синтаксис который настраивается в конфиге сервера насколько я знаю..
  7. zver1k Novice member


    Offline
    Message Count:
    5
    Likes Received:
    0
    не правильно выразился :oops:

    помоги настроить ЧПУ под nginx...?
  8. SummerResident User


    Offline
    Message Count:
    241
    Likes Received:
    4
    Подскажите, плиз, как сделать так для одного конкретного юзверя? Например, у меня есть юзер с ID 15, как сделать что бы для этого пользователя был конкретный адрес, например: max.mysite.com ? Имена пользователей у меня отключены.
  9. Prado Challenge Everything


    Offline
    • Admin
    Message Count:
    3,191
    Likes Received:
    786
    My version of phpFox:
    3.0.0
    Только для одного?
  10. SummerResident User


    Offline
    Message Count:
    241
    Likes Received:
    4
    Ага.

Share This Page

All rights reserved SocEngine.ru ©