2013-09-21 2 views
1

Я завершаю свою работу над приложением Yii, и я хочу иметь более красивые URL-адреса. Я прошел через сайты и Yii wiki и пошел в соответствии с руководствами. Тем не менее, я застрял в том, что не могу скрыть index.php из моего URL. С index.php в моей URL она работает, сайт открывается, без него gices мне сервер 404.Ошибка Yii 404 с указателем urlmanager до false

Это мой main.config:

'urlManager'=>array(
'urlFormat'=>'path', 
'showScriptName'=>false, 
'rules'=>array(
    '<action>'=>'site/<action>', 
    '<controller:\w+>/<id:\d+>' => '<controller>/view', 
    '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', 
    '<controller:\w+>/<action:\w+>' => '<controller>/<action>', 
), 
), 

С «showScriptName» установлен в ложь я 404.

Это мой .htaccess

RewriteEngine on 
RewriteBase/
# if a directory or a file exists, use it directly 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond $1 !^(index\.php) 

# otherwise forward it to index.php 
RewriteRule ^(.+)$ index.php?$1 [PT,L,QSA] 

Я в настоящее время тестирования сайта на локальном хосте с помощью WAMP. Работает Mod_rewrite на Apache. Изменен http.conf для опций индексов FollowSymLinks Разрешить переопределение всех.

Что еще мне не хватает?

ответ

1

Для тех, кто борется! Поместите .htaccess в корень вашего приложения, а не внутри защищенной папки !!!

0
'urlManager' => array(
      'urlFormat' => 'path', 
      'urlSuffix' => '.html', 
      'showScriptName' => false, 
      // 'caseSensitive'=>false, 
      'rules' => array(
       '<action>'=>'site/<action>', 
    '<controller:\w+>/<id:\d+>' => '<controller>/view', 
    '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', 
    '<controller:\w+>/<action:\w+>' => '<controller>/<action>', 
      ), 
     ), 

В вашем .htaccess

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 

Загрузить HTAccess в папке проекта.

1

Попробуйте добавить:

'' => 'site/index' 

в массив вашего urlManager 'правил'. Логика заключается в том, что Yii не может соответствовать запросу шаблона '' с любым из ваших определенных правил.

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