Nginx-主页重定向到/ index

时间:2019-02-05 08:09:36

标签: nginx

我正在尝试将nginx配置为提供纯静态html页面。我正在使用Ubuntu 18.04。

问题如下: 尝试通过url输入http://www.mywebsite.com/进入我的网站时,它会自动将URL更改为http://www.mywebsite.com/index

使用http://www.mywebsite.com/index.html时,它还会将URL更改为http://www.mywebsite.com/index-但我认为这是因为重写规则从uri中删除了.html扩展名。

同时使用“ /”和“ index.html”时,我想删除愚蠢的“ / index”结尾。我找到了一种解决方案,但不确定是否是“合适的”解决方案:

# If URI equals '/' then find index.html static page
location = / {
        try_files /index.html $uri =404;
}

# After rewrite homepage URI equals '/index', it rewrites it to '/'
location = /index {
        rewrite /index / permanent;
}

我试图通过使用简单的try_files对其进行配置,而不进行任何重写,返回等操作。但是无论如何,对于主页,它始终始终将URI更改为“ / index”。

我的配置

sites-available / mywebsite.com内容

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name _;

        # remove the .html extension from request URI
        rewrite ^(/.*)\.html(\?.*)?$ $1$2 permanent;

        root /var/www/mywebsite.com;
        index index.html;

        # redirect rules for homepage '/', removes 'index' from URI
        include /etc/nginx/sites-available/conf/redirects-homepage-template.conf;

        # rule for any URI content. Searches for static file with .html extension or exact URI content file name. If not found, returns 404.
        location / {
                try_files $uri.html $uri =404;
        }
}

redirects-homepage-template.conf内容

# Rules for handling homepage redirects

# If URI equals '/' then find index.html static page
location = / {
        try_files /index.html $uri =404;
}

# After rewrite homepage URI equals '/index', it rewrites it to '/'
location = /index {
        rewrite /index / permanent;
}

该网站仅应提供静态内容,并应尽可能快地运行。我想知道我的解决方案的后果,以及是否有更好的方法可以从首页中删除愚蠢的“ / index”。

尚未配置域,使用裸IP地址进行测试。

0 个答案:

没有答案