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;
....
}
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;
}
}
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;
....
}
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
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;
}
}
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;
}
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ê.