Problemas Com Url Em Produção

Olá a todos, estou com um problema no servidor onde todos os links do site ficam com o caminho absoluto da pasta da aplicação no servidor. Por exemplo: site. com. br/var/www/html/site.com.br/web/portugues/site/contato

Estou um pouco perdido e ainda não consegui consertar isso. Alguém teria ideia de como resolver isso?

Desde já muito obrigado.

Márcio,

Como está fazendo as url? Posta um trecho do código!

Eu uso o Yii::CreateUrl();

Por exemplo, em uma das páginas com listagem de notícias eu tenho:




<li class="news-topic box box-rounded span10">

    <div class="date"><?php

                                $datetime = explode(' ', $data->date);

                                $date = explode('/', $datetime[0]);

                                $USdate = $date[2] . '-' . $date[1] . '-' . $date[0];

//                echo $date[0] . ' ' . Date::$MESES[(($date[1] * 1) - 1)]; 

                                ?>

                                <span class='day'><?php echo Yii::app()->dateFormatter->format('dd', $USdate); ?></span> <?php echo Yii::app()->dateFormatter->format('MMM', $USdate); ?></div>

    <div class="box-content">

        <h2 class='news-title'><a href="<?php echo Yii::app()->createUrl('noticias/' . $data->slug); ?>"><?php echo $data->title; ?></a></h2>

        <p><?php echo $data->resume; ?></p>

    </div>                      

</li>




Eu pensei que poderia ser algo no urlManager mas até então não consegui resolver. Quando clico em um desses links gerados pelo código acima (e em todos os outros do site) obtenho o link site. com/var/www/html/site.org/web/portugues/site/contato. O “protugues” no link é de um complemento de idiomas. Uma coisa estranha que acontece é que ao carregar o site pela primeira vez os links estão ‘normais’ (site.com/portugues/controle/action), clico e não redireciona, carrega o index mas agora os links ficam nesse formato que mostrei mais acima. PS: Os links nesse formato louco ai estão funcionando.

Márcio,

  1. Como está seu urlManager no config/main.php ?

  2. Esse slug do $data->slug, e do seu banco de dados ou uma função que você criou?

  3. Veja se com o Yii::app()->createAbsoluteUrl(), resolve alguma coisa.

  4. Esse projeto está local ou online?

Aqui está a configuração do urlManager:




'urlManager'=>array(

                    'rules'=>array(

                        'language/changeto/<lang:[\w\-]+>' => 'site/language/changeto/<lang>',

                        '<lang:[\w\-]+>/templates/<controller:[\w\-]+>/<action:[\w\-]+>/*' => 'templates/<controller>/<action>',

                        

                        '<lang:[\w\-]+>/site/<page:[\w\-]+>/*' => 'site/<page>',

                        '<lang:[\w\-]+>/<page:[\w\-]+>/<slug:[a-zA-Z0-9-]+>' => 'site/<page>',

                        '<lang:[\w\-]+>/<page:[\w\-]+>/*' => 'site/<page>',

                        '<lang:[\w\-]+>' => 'site/index',

                        

                        // Essa regra deve existir para que o CGridView funcione corretamente.

                        // http://www.yiiframework.com/forum/index.php?/topic/19738-filter-after-sorting-problem-at-gridview/page__p__96648__hl__ajax+ort#entry96648 

                        '<lang:[\w\-]+>/<controller:[\w\-]+>/<action:[\w\-]+>' => '<controller>/<action>',

                    ),

                ), 



o slug é um campo no banco com um nome que sera utilizado nas url, somente para ficar mais bonito.

Projeto tá online.

Consegui resolver! A baseUrl do CUrlManager era setada com o caminho todo da bagaça (/var/www/site.com/web/) quando não era definida no config. Fiz essa definição no config, dentro do array de componentes, informei que o ‘request’ tem a ‘baseUrl’ = ‘/web’ e ai a url ficou clean