umschreiben – pseudostatisches Nginx-Problem
習慣沉默
習慣沉默 2017-05-16 17:28:37
0
1
639

Meine Website ist zweisprachig: Chinesisch und Englisch Wenn der Zugriff über pathinfo erfolgt, sollte es so aussehen Chinesisch: http://www.com/index.php/product/category/a1/ Englisch: http://www.com/en.php/product/category/a2/ Wenn das Programm den Rewrite-Modus aktiviert, sollte es so aussehen http://www.com/cn/product/category/a1/ http://www.com/en/product/category/a2/ Ich habe es in Apache implementiert, die Regeln sind wie folgt

<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>

Aber in Nginx probiere ich zwei Methoden aus, wie zum Beispiel Methode 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;

Methode 2.

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

Beide Methoden funktionieren nicht, bitte geben Sie mir eine Lösung

習慣沉默
習慣沉默

Antworte allen(1)
大家讲道理

方法2你只写了一条?写下面两条应该是没问题的。

location /cn/ {
    if (!-e $request_filename){
        rewrite ^/cn/(.*)$ /index.php/$1 last;
    }
}
location /en/ {
    if (!-e $request_filename){
        rewrite ^/en/(.*)$ /en.php/$1 last;
    }
}
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage