rewrite - nginx伪静态的问题

【字号: 日期:2022-06-30浏览:25作者:雯心

问题描述

我的网站有两种语言,中文+英文如果用pathinfo访问的话应该是这样中文:http://www.com/index.php/product/category/a1/英文:http://www.com/en.php/product/category/a2/程序如果开重写模式的话应该是这样http://www.com/cn/product/category/a1/http://www.com/en/product/category/a2/ 在apache中我已经实现了,规则如下

<IfModule mod_rewrite.c>RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^cn/(.*)$ index.php/$1 [L]RewriteRule ^en/(.*)$ en.php/$1 [L]</IfModule>

但是在nginx中我试两种方法,如方法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/$1 last;}rewrite ^/en/(.*)$ /en.php/$1 last;

方法2.

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

两种方法都不能生效,求大神给个解决的方法呀

问题解答

回答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; }}

相关文章: