【发布时间】:2016-12-14 13:22:10
【问题描述】:
我有 url www.foo.com,它有两种语言 EN 和 CN。我有about.php、product.php等页面。
我希望将 URL www.foo.com/about.php?lang=cn 写为 www.foo.com/cn/about 和同样的方式,www.foo.com/en/product 等。
我正在使用 nginx 为这个 php 网站提供服务。
我可以将 .php 文件隐藏为
location / {
try_files $uri $uri/ $uri.php?$query_string;
}
我试着写这样的东西
location / {
try_files $uri $uri/$query_string/ $uri.php?$query_string;
}
但不知何故似乎不起作用。
【问题讨论】:
-
你尝试过类似
location / { if ($arg_lang){ rewrite ^ /$arg_lang/$uri permanent; } }的东西吗? -
我没试过。你能详细说明一下吗?我的意思是如何将 lang="cn" 值分配给 $arg_lang 等。
-
据我所知,nginx 为查询字符串的每个部分提供了一个 $arg_
变量。所以 $arg_lang 应该是开箱即用的。因此,当在查询字符串中设置 lang 时,应该进行重写。但目前我无法测试它。
标签: php .htaccess nginx url-rewriting nginx-location