Nginx 隱藏網址列的副檔名

最近很常使用Nginx當作架站工具,也會拿來Proxy,真的覺得Nginx好用。但最近我想到,如何更簡單的呈現網址列,也就是我不想讓副檔名出現,如.html 、.php 這樣,這樣看起來比較厲害(X)。經過我一番尋找,還真的有找到。

在 /etc/nginx/sites-enabled 下的檔案裡(預設是default,如果你有建其他的,就用其他的),在 location / 裡加入以下文字

如果你想讓 .html 消失:

if ($request_filename ~ ^/?$){
  rewrite ^/?$ /index.html;
}
if (!-e $request_filename){
  rewrite ^(.*)$ /$1.html;
}

如果你想讓 .php 消失:

if ($request_filename ~ ^/?$){
  rewrite ^/?$ /index.php;
}
if (!-e $request_filename){
  rewrite ^(.*)$ /$1.php;
}

接著重啟 Nginx 後,輸入網址並不加上副檔名,應該就可以順利進入囉!