2012-06-18 67 views
2

我剛碰到nginx的httpsubmodule。我認爲這可能會幫助我做到這一點。nginx httpsubmodule替換html內容

我有HTML頁面是靜態的,我想在輸出html中使用uri部分。例如對於例如 我的靜態URL是http://static.mydomain.com/pic1234.html,所以在頁面中我想顯示單詞「pic1234」。 我無法使用JavaScript,因爲我想爲靜態頁面生成HTML元數據。

可以這樣做嗎?如果是的話如何?我無法找到任何示例。我發現的全部是http://wiki.nginx.org/NginxHttpSubModule

請注意,我在靜態文件服務nginx服務器上沒有cgi或程序。

回答

6

我已經創建了一個簡單的例子。使用這種配置,nginx的替代__name__令牌在HTML頁面的文件名請求的HTML(在這種情況下, 「pic1234」):

nginx的配置:

server { 
     listen 80; 
     server_name localhost; 

     root D:/Development/public; 
     sub_filter_once off; 

     location/{ 
      if ($uri ~* /(\w+)\.html$) { 
       set $filename "$1"; 
      } 
      sub_filter "__name__" $filename; 
      try_files $uri $uri/ ; 
     } 
} 

d:/開發/公/ pic1234.html:

<html> 
<head> 
    <title>__name__</title> 
</head> 
<body> 
    <h1>Contents of __name__:</h1> 
</body> 
</html> 

您可以找到依據here

+0

我試過你的解決方案,但我__name__被替換爲空白。 – Vangel

+0

是的它的工作原理,我的配置中出現了問題。真棒。 – Vangel