réécriture - problème pseudo-statique nginx
習慣沉默
習慣沉默 2017-05-16 17:28:37
0
1
601

Mon site Web est bilingue, chinois + anglais Si vous y accédez à l'aide de pathinfo, cela devrait ressembler à ceci Chinois: http://www.com/index.php/product/category/a1/ Anglais: http://www.com/en.php/product/category/a2/ Si le programme active le mode réécriture, cela devrait ressembler à ceci http://www.com/cn/product/category/a1/ http://www.com/en/product/category/a2/ Je l'ai implémenté dans Apache, les règles sont les suivantes

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^cn/(.*)$ index.php/ [L]
RewriteRule ^en/(.*)$ en.php/ [L]
</IfModule>

Mais dans nginx, j'essaie deux méthodes, telles que Méthode 1.

if (!-f $request_filename){
set $rule_0 1$rule_0;
}
if (!-d $request_filename){
set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
rewrite ^/cn/(.*)$ /index.php/ last;
}
rewrite ^/en/(.*)$ /en.php/ last;

Méthode 2.

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

Les deux méthodes ne fonctionnent pas, donnez-moi une solution s'il vous plaît

習慣沉默
習慣沉默

répondre à tous(1)
大家讲道理

Méthode 2 : Vous n’en avez écrit qu’un ? Cela ne devrait poser aucun problème d’écrire les deux éléments suivants.

location /cn/ {
    if (!-e $request_filename){
        rewrite ^/cn/(.*)$ /index.php/ last;
    }
}
location /en/ {
    if (!-e $request_filename){
        rewrite ^/en/(.*)$ /en.php/ last;
    }
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal