2013-12-07 6 views
1

Я удалил index.php с моего url, используя htaccess, как упоминалось в форумах/руководствах Yii. Он отлично работал на моем ПК с ОС Windows с установленным в нем Xampp. Но когда я загрузил он в на y хостинг только домашняя страница загружается. Все другие ссылки получают ошибку 404.Yii удаление index.php с использованием htaccess дает мне ошибку 404

Мои .htaccess

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule . index.php 

Когда я связался с моим хостинг службой поддержки они сказали mode_rewrite включена.

Мой контент main.config является

'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>', 

       'gii' => 'gii/<controller>', 

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

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


      ), 
      'showScriptName'=>false, 
     ), 

Я попробовал многочисленные решения, но все vain.Please помочь

+0

Вы нашли решение? У меня такая же проблема –

ответ

0

Попробуйте RewriteRule . /index.php вместо этого, наблюдать начальный слеш.

В противном случае путь относительный, поэтому http://somedomain.com/path/ будет перенаправлен на http://somedomain.com/path/index.php, вместо http://somedomain.com/index.php. менеджер

+0

Просто попробовал это, но все равно не успел. Любое другое решение –

0

Url в конфигурационном файле должно быть, как это

 'urlManager' => array(
     'urlFormat' => 'path', 
     'showScriptName' => false, 
     'rules' => array(
       'home' => '/site/index', 
       'cms' => '/site/contentview', 
       'register' => '/site/register', 
       'login' => '/site/login', 
      ......), 
    ), 

И при копировании с локального хоста (Windows или Mac), чтобы отделят .htaccess должен быть, как этот

Options +FollowSymLinks 
IndexIgnore */* 
RewriteEngine on 

# if a directory or a file exists, use it directly 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

# otherwise forward it to index.php 
RewriteRule . index.php 
+0

Нет успеха. Я думаю, мой .htaccess вызывает проблему. Любые настройки сервера ??? –

0

Наиболее распространенной проблемой (linux) - чувствительность к регистру, проверьте свой случай на контроллерах.

Также проверьте директиву AllowOverride внутри определения вашего виртуального хоста.

<Directory /path/to/website> 
    AllowOverride All 
    Require all granted 
</Directory> 

иначе правила перезаписи не будет иметь никакого эффекта, даже если mod_rewrite включена.

Источник: http://www.yiiframework.com/forum/index.php/topic/30739-404-errors-on-apache2-ubuntu/page__p__148021__hl__404+error#entry148021

0

я испытал те же проблемы, проверьте, если вы следуете именования контроллера M у C ontroller первый Lettre и «C» контроллера должны быть капитализированы.

Смежные вопросы