NGINX Remove index.php /index.php/something/more/ para / alguma coisa / mais

3

Estou tentando limpar urls no NGINX usando o framework DooPHP.

Isto = > - link Para isto = > - link

Eu quero remover (clean url) o "index.php" da url se alguém tentar entrar no primeiro formulário. Como um redirecionamento permanente.

Como fazer essa configuração no NGINX?

Obrigado.

[Atualização: configuração real do nginx]

server {
  listen 80;
  server_name vip.example.com;
  rewrite ^/(.*) https://vip.example.com/$1 permanent;
}

server {
       listen 443;
       server_name vip.example.com;

       error_page 404 /vip.example.com/404.html;
       error_page 403 /vip.example.com/403.html;
       error_page 401 /vip.example.com/401.html;
       location /vip.example.com {
           root /sites/errors;
       }

       ssl on;
       ssl_certificate /etc/nginx/config/server.csr;
       ssl_certificate_key /etc/nginx/config/server.sky;

       if (!-e $request_filename){
           rewrite /.* /index.php;
       }

       location / {
           auth_basic  "example Team Access";
           auth_basic_user_file  config/htpasswd;
           root   /sites/vip.example.com;
           index  index.php;
       }

       location ~ \.php$ {
           fastcgi_pass   127.0.0.1:9000;
           fastcgi_index  index.php;
           fastcgi_param  SCRIPT_FILENAME  /sites/vip.example.com$fastcgi_script_name;
           include        fastcgi_params;
           fastcgi_param PATH_INFO $fastcgi_script_name;
      }

}
    
por Gaston 26.03.2011 / 07:33

5 respostas

3

Esta era a linha que eu estava procurando, eu fiz isso sozinho. Eu poderia ter alguns insetos.

O que você acha?

server {

 ....

  rewrite ^/index.php/(.*) /$1  permanent;

 ....

}
    
por 26.03.2011 / 18:42
3

Eu experimentei no CodeIgniter 1.7 & 2.0, e eu mudo

config.php $config['uri_protocol'] = "REQUEST_URI";

e eu adiciono try_files $uri $uri/ /index.php?r=$request_uri;

no nginx.conf e trabalhado

location / {
       auth_basic  "example Team Access";
       auth_basic_user_file  config/htpasswd;
       root   /sites/vip.example.com;
       index  index.php;
       try_files $uri $uri/ /index.php?r=$request_uri;
   }

talvez seja o mesmo no DooPHP

    
por 31.05.2011 / 05:56
2

Adicione isto à parte de configuração do servidor nginx.

location / {
                if (!-e $request_filename) {
                        rewrite ^/([^?]*)(?:\?(.*))? /index.php?title=$1&$2 last;
                }
                if ($uri ~* "\.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$") {
                        expires max;
                        break;
                }
        }
    
por 05.08.2014 / 08:59
0

Se você só tem arquivos php você pode usar:

location / {
    rewrite ^(.*)$ /index.php
}

location ~  \.php$ {
    fastcgi_pass    127.0.0.1:9000
    fastcgi_index   index.php;
    fastcgi_param   SCRIPT_FILENAME
                    $document_root$fastcgi_script_name;
    include         fastcgi_params;
}
    
por 26.03.2011 / 09:54
0

Remover esta linha

if (!-e $request_filename){
   rewrite /.* /index.php;
}

Adicione este local interno /

    rewrite ^(.*)$ /index.php;

    if (!-e $request_filename){
        rewrite ^(.*)$ /$1.php;
    }

Espero que este trabalho seja para você.

    
por 09.08.2018 / 17:04

Tags