2012-06-18 65 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