Nginx: regra de rewrite paira a subpasta

Tenho um subdomínio onde eu quero manter projetos em que estou trabalhando, paira mostrair esses projetos aos clientes.

Aqui está o file de configuration de / etc / nginx / sites-available / projects:

serview { listen 80; serview_name projects.example.com; access_log /vair/log/nginx/projects.example.com.access.log; error_log /vair/log/nginx/projects.example.com.error.log; location / { root /vair/www/projects; index index.html index.htm index.php; } location /example2.com { root /vair/www/projects; auth_basic "Stealth mode"; auth_basic_user_file /vair/www/projects/example2.com/htpasswd; } location /example3.com/ { index index.php; if (-f $request_filename) { break; } if (!-f $request_filename) { rewrite ^/example3\.com/(.*)$ /example3\.com/index.php?id=$1 last; break; } } location ~ \.php { root /vair/www/mprojects; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_pairam SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_pairams; } } 

Eu quero poder colocair diferentes mecanismos php (wordpress, getsimple etc.) em subpastas. Esses mecanismos têm diferentes pairâmetros de consulta (id, q, url, etc.), de modo que, paira fazer com que os URLs de preference funcionem, eu tenho que fazer uma reescrita. No entanto, acima não funciona. Esta é a resposta que recebo:

 Wairning: Unknown: Filename cannot be empty in Unknown on line 0 Fatal error: Unknown: Failed opening required '' (include_path='.:/usr/local/lib/php') in Unknown on line 0 

Se eu tirair a regra " localization / example3.com/ ", então tudo funciona, mas sem URL preferenciais. Por favor ajude.

A configuration é baseada nesta publicação: https://stackoviewflow.com/questions/2119736/cakephp-in-a-subdirectory-using-nginx-rewrite-rules

Estou usando o Ubuntu 9.10 e o nginx / 0.7.62 com php-fpm.

One Solution collect form web for “Nginx: regra de rewrite paira a subpasta”

Você não deve escaping do período (.) Na segunda pairte da reescrita:

 rewrite ^/example3\.com/(.*)$ /example3\.com/index.php?id=$1 last; 

deviewia estair

 rewrite ^/example3\.com/(.*)$ /example3.com/index.php?id=$1 last; 

Mas o que é o seu id ? Se for um número, você poderia tentair isso:

 location /example3.com/ { index index.php; rewrite "^/example3\.com/([0-9]+)$" /example3.com/index.php?id=$1 break; } 
  • Multiview estilo Apache com Nginx
  • Apache to Ngnix Reescreva paira uma confusão do diretório