索引为servlet,其余为静态内容

  • 本文关键字:静态 servlet 索引 g-wan
  • 更新时间 :
  • 英文 :


我刚刚拿起G-WAN,我正试图弄清楚如何使索引使用特定的servlet,同时也有静态内容可用。

我将index.html移动到index_old.html,这样我就不会有任何冲突。

我将下面的代码放入处理程序中。

xbuf_t *read_xbuf = (xbuf_t*)get_env(argv, READ_XBUF);
xbuf_replfrto(read_xbuf, read_xbuf->ptr, read_xbuf->ptr + 16, "/", "/?hello");

重启gwan后,我看到了我想要的Hello, ANSI C!

然而,我注意到所有其他内容不再加载,甚至404页是不同的!

所以,我有了一个想法,这似乎是在做字符串替换,而不是精确匹配。

xbuf_t *read_xbuf = (xbuf_t*)get_env(argv, READ_XBUF);
xbuf_replfrto(read_xbuf, read_xbuf->ptr, read_xbuf->ptr + 16, "/", "/?");

现在,当点击/时,我看到了404,/hello,我再次看到了servlet。所以,这似乎不是我正在寻找的解决方案。

同样,我只想让/命中我指定的特定servlet,并且所有其他请求都不受此规则的影响。

谢谢,

中似乎提出了类似的解决方案G-WAN处理程序重写解决方案

使用它,我派生了以下代码,不仅允许生成索引,还允许生成任何额外的查询字符串。
char *szRequest = (char*)get_env(argv, REQUEST);
if(strncmp(szRequest, "GET / ", 6) == 0){
        xbuf_t *read_xbuf = (xbuf_t*)get_env(argv, READ_XBUF);
        xbuf_replfrto(read_xbuf, read_xbuf->ptr, read_xbuf->ptr + 16, "/", "/!hello");
}else if(strncmp(szRequest, "GET /?", 6) == 0){
        xbuf_t *read_xbuf = (xbuf_t*)get_env(argv, READ_XBUF);
        xbuf_replfrto(read_xbuf, read_xbuf->ptr, read_xbuf->ptr + 16, "/?", "/!hello&");
}

如上所示,我必须移动到!以避免冲突。这意味着我必须在init()函数中添加以下内容:

u8 *query_char = (u8*)get_env(argv, QUERY_CHAR);
*query_char = '!'; 

我能够访问//?blah没有问题,同时仍然能够访问像100.html这样的文件,而没有得到servlet 404。

似乎任何其他类似的绑定到URL,而不阻塞目录的其余部分可以更容易地使用宏。

相关内容

  • 没有找到相关文章

最新更新