2014-11-04 65 views
-2

我试图在我的Nginx服务器上安装GitList(http://gitlist.org/)。但是,安装的部分是,我改变用下面的代码Apache的配置文件:Nginx上的Mod_rewrite?

<Directory "/var/www/html"> 
    # Other lines omitted 
    AllowOverride All 
    # Other lines omitted 
</Directory> 

此外,这还需要在.htaccess文件GitList文件夹中:

<IfModule mod_rewrite.c> 
    Options -MultiViews +SymLinksIfOwnerMatch 

    RewriteEngine On 
    #RewriteBase /path/to/gitlist/ 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php/$1 [L,NC] 
</IfModule> 
<Files config.ini> 
    order allow,deny 
    deny from all 
</Files> 

怎么办我在Nginx中做了这一步?

回答

2

原来,这是需要添加什么:

server { 
    server_name MYSERVER; 
    access_log /var/log/nginx/MYSERVER.access.log combined; 
    error_log /var/log/nginx/MYSERVER.error.log error; 

    root /var/www/DIR; 
    index index.php; 

# auth_basic "Restricted"; 
# auth_basic_user_file .htpasswd; 

    location = /robots.txt { 
     allow all; 
     log_not_found off; 
     access_log off; 
    } 

    location ~* ^/index.php.*$ { 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 

     # if you're using php5-fpm via tcp 
     fastcgi_pass 127.0.0.1:9000; 

     # if you're using php5-fpm via socket 
     #fastcgi_pass unix:/var/run/php5-fpm.sock; 

     include /etc/nginx/fastcgi_params; 
    } 

    location/{ 
     try_files $uri @gitlist; 
    } 

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { 
     add_header Vary "Accept-Encoding"; 
     expires max; 
     try_files $uri @gitlist; 
     tcp_nodelay off; 
     tcp_nopush on; 
    } 

# location ~* \.(git|svn|patch|htaccess|log|route|plist|inc|json|pl|po|sh|ini|sample|kdev4)$ { 
#  deny all; 
# } 

    location @gitlist { 
     rewrite ^/.*$ /index.php; 
    } 
}