После Переноса На Хостинг (Centos) Сломался Urlmanager

Всем привет!

Сайт собранный на OpenServer имеет следующие настройки


        'urlManager'=>array(

            'urlFormat'=>'path',

            'rules'=>array(

                '<controller:\w+>/<id:\d+>'=>'<controller>/view',

                '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',

                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

            ),

            'showScriptName'=> false,

        ), 

Так же еще подцепил к yii bootstrap (думаю это важно)

После переноса на хостинг (Centos) - пытаюсь перейти по любой из ссылок меню.

Выдает:

Как только комментирую ‘showScriptName’=> false,




        'urlManager'=>array(

            'urlFormat'=>'path',

            'rules'=>array(

                '<controller:\w+>/<id:\d+>'=>'<controller>/view',

                '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',

                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

            ),

            //'showScriptName'=> false,

        ), 

Начинает нормально работать…

На apache модуль mod_rewrite - подключен

В файле .htaccess имеются следующие директивы:


AddDefaultCharset utf-8


RewriteEngine on


# не позволять httpd отдавать файлы, начинающиеся с точки (.htaccess, .svn, .git и прочие)

RedirectMatch 403 /\..*$

# если директория или файл существуют, использовать их напрямую

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

# иначе отправлять запрос на файл index.php

RewriteRule . index.php

Прошу помощи!!!!

з.ы. Вот еще одна проблема

Ругается на


Echo Yii::app()->theme->baseUrl - Trying to get property of non-object

в \protected\views\layouts\main.php

(на OpenServer все работало)

Было подозрение на регистрозависимость - проверил, все папки с маленькой буквы…

Ткните носом - плиззззз!!!

По первой проблеме:

Попробуйте в первую очередь расположить правила в таком порядке:




'urlManager'=>array(

    'urlFormat'=>'path',

    'rules'=>array(

        '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',

        '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

        '<controller:\w+>/<id:\d+>'=>'<controller>/view',

    ),

    'showScriptName'=> false,

),



Т.е. самое детальное правило должно быть вверху списка подобных ему. Не раз сталкивался, что на разных системах порядок применения правил urlManager отличалось…

К сожалению - не помогло :frowning:

Для проверки установил с нуля сервер на Ubuntu Server x32 14.04

Архив с дистрибутивом Юппи! 0.7 распаковал в директорию апача

/protected и /assets дал права на запись

Первая страница загружается, но при выборе языка "Русский"

Выходит сообщение:

Что за напасть? там вроде все должно быть правильно с регистрами!!!

а хтакчес вообще работает?

Вы так не шутите. В /protected открывать нужно только runtime, остальное все должно быть скрыто.

А насчет вашей проблемы - у вас не работает mod_rewrite, связано это может быть с чем угодно, но скорее всего с ошибками в htaccess или в конфигах апача.

Проверьте AllowOverride all в конфиге, попробуйте на чистой установке yii c стандартным htaccess:




Options +FollowSymLinks

IndexIgnore */* 

RewriteEngine on

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . index.php



Если работает, то проблема у вас с htaccess, если же нет - проблема с конфигами апача и mod_rewrite.

Также обязательно проверьте наличие лишних пробелов и enter-ов в htaccess.

О да - соррри - конечно же /protected/runtime

Поклятый Т9! :slight_smile:

Вы оказались правы!!!

Не работал mod_rewrite

Теперь Юппи заработал значит другое не работает из за регистра в названиях классов

Спасибо ВАМ огромное!!!

Ребята, подскажите как подготовится к переносу сайта на новый хостинг чтобы избежать вот таких вот ошибок? как сделать перенос сайта максимально быстрым и безболезненным? собираюсь через неделю переезжать на хостинг от

  1. Развернуть на новом хостинге чистое тестовое приложение.

  2. Проверить requirements (идут в комплекте).

  3. Перенести конфиг со старого хостинга (то что важно - urlmanager, может еще что то). Проверить все.

  4. База (можно тестовую, если небольшая - можно развернуть с дампа). Проверить работу с базой.

После этого можете смело переносить все. Можно и сразу переносить готовое приложение - если на старом хостинге все еще работает (dns все равно будет прописываться до 24 часов).