2016-06-12 4 views
0

Я пытаюсь установить Url Manager в моем базовом шаблоне yii2. Ниже .htaccess файл, который найти mysite.loc/web/.htaccessUrl Manager не работает В моем приложении yii2

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 

и внутри моего web.php файла я добавил этот фрагмент кода:

'urlManager' => [ 
    'class' => 'yii\web\UrlManager', 
    'enablePrettyUrl' => true, 
], 

Когда я пытаюсь ввести (например) mysite.loc/index.php/site/movies Он приходит ошибка вот так: 404 not found error nginx

Если кто-нибудь знает, что мне нравится, пожалуйста. Что случилось с моими настройками ???

+0

Показать виртуальный хост CONFIG – Vitaly

ответ

0

Я прочитал несколько тем и имеют нашел правильный ответ. Существует различие между конфигурацией apache и конфигурацией nginx при настройке urlManager.

Если Ваш сервер Apache (как было сказано выше Виталий):

.htaccess:

RewriteEngine on 

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

RewriteRule . index.php 

конфигурации/web.php:

'urlManager' => [ 
    'enablePrettyUrl' => true, 
    'showScriptName' => false, 
    'rules' => [ 
    ], 
], 

Если ваш сервер Nginx :

nginx congfig файл (в моем случае /etc/ngnix/site-enabled/mysite.loc):

server { 
    listen 80; 
    root /var/www/html/mysite.loc/web; 
    server_name mysite.loc www.mysite.loc; 
    index index.php index.html; 

    location/{    
     try_files $uri $uri/ /index.php?$args; 
    } 

    location ~ \.php$ { 
    try_files $uri =404; 
    fastcgi_split_path_info ^(.+\.php)(/.+)$; 
    fastcgi_pass unix:/var/run/php5-fpm.sock; 
    fastcgi_index index.php; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    include fastcgi_params; 
} 

}

Как вы можете видеть, что я добавил этот фрагмент кода и ничего больше:

location/{    
     try_files $uri $uri/ /index.php?$args; 
} 

конфигурационный файл/web.php такого же, как Apache сервер:

'urlManager' => [ 
    'enablePrettyUrl' => true, 
    'showScriptName' => false, 
    'rules' => [ 
    ], 
], 
1

Мой конфиг

.htaccess

RewriteEngine on 

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

RewriteRule . index.php 

конфигурации/web.php

'urlManager' => [ 
    'enablePrettyUrl' => true, 
    'showScriptName' => false, 
    'rules' => [ 
    ], 
], 

Попробуйте выше и перейти к URL-адресу mysite.loc/site/movies

+0

Спасибо за ваш ответ Виталий :-) б ваш ответ правильный для серверов Apache. Я использую сервер nginx. Как вы можете видеть в моем вопросе, я сказал: «Наступает ошибка: 404 не найдена ошибка nginx». – Sherzod