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 後,輸入網址並不加上副檔名,應該就可以順利進入囉!