如何在这个位置脚本中使用我的index.htm?

时间:2017-07-20 14:22:07

标签: nginx

我需要将网址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;
      }
}

2 个答案:

答案 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://标记。如果您想添加标记,redirectpermanent标记将是相关的。有关详细信息,请参阅this document