nginx reescrever o curinga do diretório

1

Eu configurei um bloco de servidor no meu servidor nginx, por exemplo com domínio testsite.com . Quero poder instalar instalações separadas do WordPress em pastas filhas diretas das pastas raiz, por exemplo, /var/www/html/testsite.com/ childfolder1 , /var/www/html/testsite.com/ childfolder2 etc., para que possam ser alcançados pelo testsite. com / childfolder1 , testsite.com/ childfolder2 etc.

A maneira manual de criar redirecionamentos seria inseri-lo assim:

location /childfolder1 {
    index index.php;
    try_files $uri $uri/ /childfolder1/index.php?$args;
}

e repita-o para todos os sites que estão por vir. O uso de location / abrange apenas o diretório raiz. Existe uma maneira de criar uma regra curinga (regex?) Que diz: "Para cada subdiretório direto, aplique este comando try_files" (que obviamente é sempre o mesmo para o WordPress, apenas os nomes das pastas mudam)?

location /*anydirectsubdirectory* {
    index index.php;
    try_files $uri $uri/ /*anydirectsubdirectory*/index.php?$args;
}
    
por physalis 01.07.2016 / 02:58

2 respostas

2

Eu não posso atestar se o que você quer fazer funcionará, mas abaixo está a conversão do seu "pseudocódigo" para a configuração real do nginx (e desde que uma solução copie e cole também funcione para você, isso deve continuar funcionando também ).

location ~ /(?<anydirectsubdirectory>[^/]+) {
    index index.php;
    try_files $uri $uri/ /$anydirectsubdirectory/index.php?$args;
}
    
por 03.07.2016 / 04:55
0

TENTE ISTO ~

server { listen 80; server_name example.com; charset utf-8; access_log logs/xxxxxx.access.log;

root   /var/www/html;

index index.php;
location = / { return 301 /cn/; }

location / {
    try_files $uri $uri/ /cn/index.php?q=$uri;
}
location /en {
    try_files $uri $uri/ /en/index.php?q=$uri;
}
location /my {
    try_files $uri $uri/ /my/index.php?q=$uri;
}
location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass   127.0.0.1:9000;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
}

}

    
por 01.07.2016 / 08:12