我有一个包含两个sudomains的域名
www.test.com
wiki.test.com
作为wiki多语言,我有几个子目录
http://wiki.test.com/en for English
http://wiki.test.com/es for Spanish
等
到目前为止, wiki.test.com 的根目录是一个简单的页面,询问您需要哪种语言并重定向到语言子目录。
但是现在,我想要
的“选择语言页面”http://wiki.test.com
加载:
http://www.test.com/index.php?page=wiki
(只有“wiki.test.com”或“wiki.test.com/”,不是像“wiki.test.com/ru”这样的子目录)
所以我想到了
server {
server_name wiki.test.com;
...
index index.php;
location = / {
rewrite ^ http://www.test.com/index.php?page=wiki;
#OR return 302 http://www.test.com/index.php?page=wiki;
}
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
[...]
}
但问题是,当我打开 wiki.test.com 时,人们可以看到重写的网址 www.test.com/index.php?page=wiki 虽然我希望他们只看到 wiki.test.com 。
我很确定解决方案非常简单,而且我已经进行了相当广泛的搜索,但我不能使用good关键字来查找解决方案(我发现很多与proxy_pass相关的类似问题,但我有并不是说proxy_pass是我案例的解决方案)
提前多多感谢:)
答案 0 :(得分:0)
嗯,似乎这是不可能的,因为我们在nginx中更改了server {}上下文(通过更改子域,而不仅仅是URI)。
我没有真正尝试,但我想我可以使用proxy_pass但不仅仅是我必须使用
location = / {
proxy_pass = http://www.test.com
}
还有包含图像,css js等的子目录。我发现它很复杂。
因为我有www的内容。在与wiki相同的机器上,我发现最简单的是在wiki中对符号链接www的内容,并添加一个简单的重写
location = / {
rewrite ^ /index.php?page=wiki;
}