dongyongan9941 2016-09-29 08:24
浏览 112
已采纳

如何使用lang后缀设置nginx友好URL?

I wish to have multilanguage (php/html) site... but i'm very weak in nginx/rewrite In the http address there are 3 variables (ln -language, page, step)

There is a problem when i write https://testpage.org.pl/esp/home the "/esp/" - isnt recognized like $ln variable ...

how can i fix it?

here's my nginx rewrite:

rewrite ^/([a-zA-Z0-9]+)$ /index.php?page=$1 last;
rewrite ^/([a-zA-Z0-9]+)/step-([1-3])$ /index.php?page=$1&step=$2 last;
rewrite "^/([a-z]{2})/$" /index.php?ln=$1 last;
rewrite "^/([a-z]{2})/([a-zA-Z0-9]+)$" /index.php?ln=$1&page=$2 last;
rewrite "^/([a-z]{2})/([a-zA-Z0-9]+)/step-([1-3])$" /index.php?ln=$1&page=$2&step=$3 last;
  • 写回答

1条回答 默认 最新

  • douxi4287 2016-09-30 11:48
    关注

    If your language variable always has 2 or 3 characters, you can just change your rewrites with the language variable in it to:

    rewrite "^/([a-z]{2,3})/$" /index.php?ln=$1 last;
    rewrite "^/([a-z]{2,3})/([a-zA-Z0-9]+)$" /index.php?ln=$1&page=$2 last;
    rewrite "^/([a-z]{2,3})/([a-zA-Z0-9]+)/step-([1-3])$" /index.php?ln=$1&page=$2&step=$3 last;
    

    This will make sure it will only match a language with a length between 2 and 3 and will probably work fine in your case.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加