Converter nginx para o Apache reescreve

3

Estou tentando configurar o CodeIgniter de um site existente que esteja no nginx. Minha máquina local é o Apache e este é o esquema de redirecionamento no nginx. Como faço para escrever isso usando RewriteRules ?

    if ($host ~* ^www\.(.*)) {
            set $host_without_www $1;
            rewrite ^(.*)$ http://$host_without_www$1 permanent;
    }
if ($request_uri ~* ^(/welcome(/index)?|/index(.php)?)/?$){
            rewrite ^(.*)$ / permanent;
    }
if ($request_uri ~* index/?$){
            rewrite ^/(.*)/index/?$ /$1 permanent;
    }
if (!-d $request_filename){
            rewrite ^/(.+)/$ /$1 permanent;
    }
if ($request_uri ~* ^/system){
            rewrite ^/(.*)$ /index.php?/$1 last;
            break;
    }
if (!-e $request_filename){
            rewrite ^/(.*)$ /index.php?/$1 last;
            break;
    }
    
por Shamoon 28.01.2012 / 21:30

1 resposta

1

Algo parecido com isto:

# These go in the VirtualHost context.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1$1 [R=301,L]

RewriteCond %{REQUEST_URI} ^(/welcome(/index)?|/index(.php)?)/?$ [NC]
RewriteRule ^ / [R=301,L]

RewriteRule ^/(.*)/index/?$ /$1 [R=301,L,NC]

RewriteCond %{REQUEST_URI} ^/system [NC]
RewriteRule ^/(.*)$ /index.php?/$1 [L]

<Directory /path/to/docroot>
    # This is so that these have the correct filesystem path in the
    # REQUEST_FILENAME parameter.
    # If you already have a <Directory> for here, add these to it.

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ $1 [R=301,L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule ^/(.*)$ /index.php?/$1 [L]
</Directory>
    
por 29.01.2012 / 00:52