2010-10-23 14 views

Répondre

2

module de réécriture d'utilisation nginx pour mapper une URL vers l'area.jsp id = 1 URL

http://wiki.nginx.org/NginxHttpRewriteModule

+0

c'est la meilleure réponse.Même vous pouvez faire en utilisant ModRewrite dans Apache. –

0

Dans votre base de données où vous stockez ces ID zone, ajoutez une colonne appelée « limaces » et le remplir avec les noms que vous souhaitez utiliser. La "limace" pour l'id 1 serait "newyork". Maintenant, quand une demande arrive pour l'une de ces URL, recherchez la ligne par "slug" au lieu de par id.

+0

merci, j'ai seulement besoin de maping/newy ork à /area.jsp?id=1, seulement celui-ci, pas d'autre, comment configurer ceci? – Koerr

1

Ceci est mon idée, créer un filtre dans votre application web, quand u recevez une demande comme /area.jsp?id=1, dans la méthode doFilter, transmet la demande à http://example.com/newyork.

En web.xml:

<filter> 
    <filter-name>RedirectFilter</filter-name> 
    <filter-class> 
     com.filters.RedirectFilter 
    </filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>RedirectFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

Écrivez la classe suivante et placez-le dans WEB-INF/classses:

class RedirectFilter implements Filter 
{ 
public void doFilter(ServletRequest request, 
        ServletResponse response, 
        FilterChain chain) 
    throws IOException, ServletException 
{ 


     String scheme = req.getScheme(); // http 
     String serverName = req.getServerName(); // example.com 
     int serverPort = req.getServerPort(); // 80 
     String contextPath = req.getContextPath(); // /mywebapp 
     String servletPath = req.getServletPath(); // /servlet/MyServlet 
     String pathInfo = req.getPathInfo(); // area.jsp?id=1 
     String queryString = req.getQueryString(); 
     if (pathInfo.IndexOf("area.jsp") > 1) 
     { 
      pathInfo = "/newyork"; 
      String url = scheme+"://"+serverName+contextPath+pathInfo; 
      filterConfig.getServletContext().getRequestDispatcher(login_page). 
      forward(request, response); 
    } else 
    { 
     chain.doFilter(request, response); 
     return; 
    } 
} 
} 
+1

comment configurer ce filtre? Dans nginx.conf ou web.xml? comment faire? – Koerr