nginx伪静态的问题

发布于 2022-08-27 12:03:36 字数 1211 浏览 13 评论 0

我的网站有两种语言,中文+英文 如果用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 On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^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;
    }
}

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

み格子的夏天 2022-09-03 12:03:36

方法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;
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文