所以我相当新的,我有一个nginx服务器启动并运行到一个简单的网页。 我在sites-available的configuration是:
server { listen 80 default_server; root /var/www/mywebsite/; index /html/index.html; server_name mywebsite.com www.mywebsite.com; location / { try_files $uri $uri/ =404; } }
而我的index.html位于这个结构:
+------+ +----------+ + html +-->+index.html| +------+ +----------+ | | +--------------+ +-->+scnd_page.html| +--------------+
当我访问mywebsite.com ,我看到了index.html 。 我怎么能让mywebsite.com/scnd_page/指向send_page.html ?
我已经尝试了一些创build的东西
location /scnd_page { }
但我不确定我是否在正确的轨道上。 这甚至是在这个文件上完成?
您可以使用rewrite来确保发出外部redirect,以便用户永远不会看到.html ,而用try_files来提供实际的文件。
location / { rewrite ^(/.*)\.html$ $1 redirect; try_files $uri $uri/index.html $uri.html =404; }
我不会build议支持一个尾随斜线/$暗示\.html$ ,虽然; 这种支持的逻辑会有点难看,如果你试图在所说的scnd_page.html使用相对的URL,它也会引起额外的问题。
您可以在位置块内configuration索引参数:
location /html/scnd_page { index scnd_page.html; }
您也可以将全局scnd_page.html定义为“次要”索引:
server {
listen 80 default_server; root /var/www/mywebsite/; # carefull setting '/html/index.html'... index index.html scnd_page.html; server_name mywebsite.com www.mywebsite.com; location / { try_files $uri $uri/ =404; }
}