我需要将网址http://myexample.org
(root)重定向到我的本地index.htm
,而不是将其重写为Github ...怎么做?
我正在测试location = / { try_files ...}
的许多变体,但没有人工作。使用UBUNTU 16 LTS服务器。
/etc/nginx/sites-available/myexample.org
server {
server_name myexample.org;
root /var/www/myexample.org;
index index.html index.htm;
# ?? location =/ {...} is not working!
location / {
# also not work a root rewrite
# rewrite ^/?$ index.htm break;
rewrite ^/?git$
http://github.com/myexample-org/test
break;
rewrite ^/?tickets$
http://github.com/myexample-org/test/issues
break;
rewrite ^/?(.+)$
http://github.com/myexample-org/test/$1
break;
}
}
答案 0 :(得分:0)
更改您的上次重写指令以匹配^/(.+)$
答案 1 :(得分:0)
location = /
不适用于index
,因为重写的URI会匹配location /
,然后会点击您的最终rewrite
声明。
使用指定位置的原始解决方案(几个问题前)应该可以正常工作:
root /path/to/file;
index index.htm;
location / {
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^/... http://example.com/...;
rewrite ^/... http://example.com/...;
rewrite ^/... http://example.com/...;
}
假设此服务器上存在名为/path/to/file/index.htm
的文件。由于目标网址以break
开头,因此不需要http://
标记。如果您想添加标记,redirect
或permanent
标记将是相关的。有关详细信息,请参阅this document。