Yii自定义路由在Nginx中不起作用

Anoop公关

在我的应用程序中,我使用一些自定义路由来实现Restful API。这些路线对于apache和lighttpd都适用。但是我将应用程序移到了nginx服务器,自定义路由不起作用。请帮我解决这个问题。

此URL http://example.com/index.php/categories/在apache,lighttpd和nginx中可以正常工作,但是http://example.com/index.php/category在nginx中不起作用。

Yii路由配置:

'urlManager' => array(
'urlFormat' => 'path',
'showScriptName' => false,
'rules' => array(
    array('categories/get', 'pattern' => 'category', 'verb' => 'GET'),
    '<controller:\w+>/<id:\d+>' => '<controller>/view',
    '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
    '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),)

nginx配置:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html/bk;
    index index.php index.html index.htm;

    # Make site accessible from http://localhost/
    server_name localhost;

    #Yii Specific location configurations.

    #SEF URLs for yii applications.
    location /api {
     rewrite ^/api/(.*)$ /api/index.php?r=$1;
    }

    location ~ /(protected|framework|nbproject) {
        deny all;
        access_log off;
        log_not_found off;
    }


    location ~ /themes/\w+/views {
        deny all;
        access_log off;
        log_not_found off;
    }
    location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ =404;
            # Uncomment to enable naxsi on this location
            # include /etc/nginx/naxsi.rules
    }

    # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
    #location /RequestDenied {
    #       proxy_pass http://127.0.0.1:8080;
    #}

    error_page 404 /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
            root /usr/share/nginx/html;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
    #        root /usr/share/nginx/html;
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
    #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    #
    #       # With php5-cgi alone:
    #       fastcgi_pass 127.0.0.1:9000;
    #       # With php5-fpm:
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
    #       fastcgi_param   SCRIPT_FILENAME /usr/share/nginx/html/$fastcgi_script_name;
            include fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    # 
    #location ~ /\.ht {
    #       deny all;
    #}
}
奥利姆·赛义多夫(Olim Saidov)

尝试server_name localhost在行之后添加以下行:

set $yii_bootstrap "index.php";

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

自定义路由在Codeigniter 3.0.2中不起作用

来自分类Dev

自定义WebApi路由不起作用

来自分类Dev

Restler自定义URL路由不起作用

来自分类Dev

Laravel 5自定义模块路由不起作用

来自分类Dev

Yii,自定义过滤器不起作用

来自分类Dev

yii2自定义验证不起作用

来自分类Dev

控制器中的自定义操作在yii2中不起作用

来自分类Dev

自定义验证消息在Yii2中不起作用

来自分类Dev

自定义验证在yii2中不起作用

来自分类Dev

自定义验证消息在Yii2中不起作用

来自分类Dev

Yii2 中 DynamicFormWidget 的自定义验证不起作用

来自分类Dev

为什么自定义错误页面在我的Nginx配置中不起作用?

来自分类Dev

$(this)在.each中的自定义函数中不起作用

来自分类Dev

捕获自定义错误在Bluebird中不起作用

来自分类Dev

UICollectionView在自定义键盘扩展中不起作用

来自分类Dev

自定义字体在Heroku中不起作用

来自分类Dev

自定义UitableView在Xcode中不起作用

来自分类Dev

自定义字体在Android中不起作用

来自分类Dev

FindResource在自定义控件DLL中不起作用

来自分类Dev

Android:样式中的自定义颜色不起作用

来自分类Dev

JSTL forEach在自定义标记中不起作用

来自分类Dev

UIScreenEdgePanGestureRecognizer在自定义键盘扩展中不起作用

来自分类Dev

自定义字体在Swift / Xcode中不起作用

来自分类Dev

自定义模板在WordPress中不起作用

来自分类Dev

swiftui:自定义按钮在ListView中不起作用

来自分类Dev

addEventListener在自定义元素中不起作用

来自分类Dev

自定义UICollectionViewCell类中的按钮不起作用

来自分类Dev

Xamarin Forms中的自定义控件不起作用

来自分类Dev

自定义背景资源在android中不起作用

Related 相关文章

热门标签

归档