вопрос по маршрутизации, не работает url с html

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
mika_di
Сообщения: 193
Зарегистрирован: 2015.09.24, 11:57

вопрос по маршрутизации, не работает url с html

Сообщение mika_di » 2017.04.22, 10:28

После того как включил sufix начались ошибки 404, припер.

Код: Выделить всё

'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'suffix' => '.html',
            'rules' => [
                '/' => 'catalog/items',
                '<controller:('.$cat['catigories'].')>'.'/'.'<name:[\w\-\.]+>' => 'catalog/item',
правило работает на url без html на конце, а с html 404, подскажите как исправить? Если дело в nginx на что именно смотреть и какое правило задать в nginx ?

Аватара пользователя
futbolim
Сообщения: 2050
Зарегистрирован: 2012.07.08, 19:28

Re: вопрос по маршрутизации, не работает url с html

Сообщение futbolim » 2017.04.22, 10:34

По идее, теперь код менять, чтобы ссылки с суффиксом были

Аватара пользователя
mika_di
Сообщения: 193
Зарегистрирован: 2015.09.24, 11:57

Re: вопрос по маршрутизации, не работает url с html

Сообщение mika_di » 2017.04.22, 10:36

так они с суффиксом, как только включил 'suffix' везде на конца появился html

Аватара пользователя
futbolim
Сообщения: 2050
Зарегистрирован: 2012.07.08, 19:28

Re: вопрос по маршрутизации, не работает url с html

Сообщение futbolim » 2017.04.22, 10:43

Аа, ок. Буду знать.
По конфигу nginx-a не знаю

Аватара пользователя
mika_di
Сообщения: 193
Зарегистрирован: 2015.09.24, 11:57

Re: вопрос по маршрутизации, не работает url с html

Сообщение mika_di » 2017.04.22, 21:02

при этом, если я пишу в url путь который не подпадает не под одно правило в urlManager то 404 именно yiiшная, а вот если 404 то просто пустая страница и только сверху надпись 404 какую вываливает inginx. При этом я в шаблонах могу указывать и вот так

Код: Выделить всё

'<controller:('.$cat['catigories'].')>'.'/'.'<name:[.]*>' => 'catalog/item',
ситуация та же, то есть я так понимаю дело не в yii. Модет кто поделится своими настройками реврайта в nginx?

Аватара пользователя
mika_di
Сообщения: 193
Зарегистрирован: 2015.09.24, 11:57

Re: вопрос по маршрутизации, не работает url с html

Сообщение mika_di » 2017.04.22, 22:08

в самом конце кинфига хоста nginx, есть такой кусок

Код: Выделить всё

location / {
            index index.html index.php index.htm;
            server {
                listen *:80; server_name site.ru www.site.ru;
                try_files $uri $uri/ /index.php?q=$uri&$args;
        }
    }
При перезапуске получаю страшные проклятья в виде строки
nginx: [emerg] "server" directive is not allowed here in /etc/nginx/sites-enabled/dev.site.ru.conf:47

И как я понимаю, сервер мне прозрачно намекает, что чето явно не так))), Вопрос как это по человечески переписать если server там не разрешон?


Аватара пользователя
mika_di
Сообщения: 193
Зарегистрирован: 2015.09.24, 11:57

Re: вопрос по маршрутизации, не работает url с html

Сообщение mika_di » 2017.04.23, 10:19

Сделал все как в пункте 2, результат тот же. Посмотрите пожалуйста на конфиг виртуально хоста, я явно чего-ни не понимаю.

Код: Выделить всё

server {
    charset utf-8;
    client_max_body_size 128M;
    listen 80; ## listen for ipv4
    #listen [::]:80 default_server ipv6only=on; ## слушаем ipv6
    server_name dev.project.ru
    root /var/www/dev.project.ru/www/web;
    index index.php index.html;
    access_log /var/log/nginx/dev.project-access.log;
    error_log /var/log/nginx/dev.project-error.log;
    location / {
        # Перенаправляем все запросы к несуществующим директориям и файлам на index.php
        try_files $uri $uri/ /index.php?$args;
    }
    # раскомментируйте строки ниже во избежание обработки Yii обращений к несуществующим статическим файлам location ~
    #\.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
    #    try_files $uri =404;
    #}
    #error_page 404 /404.html;
    location ~ \.php$ {
        #include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
    }
    location ~ /\.(ht|svn|git) {
        deny all;
    }
}
Я уже начинаю думать, может не в nginx дело

Ответить