2010-10-23 1 views

ответ

2

модуль переписан Используйте Nginx на карту, что один URL в area.jsp ID = 1 URL

http://wiki.nginx.org/NginxHttpRewriteModule

+0

Это лучший ответ. Даже вы можете использовать ModRewrite в Apache. –

0

В вашей базе данных, где хранятся эти идентификаторы площадь, добавить столбец под названием «слизняк» и заполнить его с именами, которые вы хотите использовать. «Slug» для id 1 будет «newyork». Теперь, когда запрос приходит для одного из этих URL-адресов, найдите строку «slug» вместо id.

+0

спасибо, мне нужно только maping/newy ork to /area.jsp?id=1, только этот, не более того, как это настроить? – Koerr

1

Это моя идея, создать фильтр в вашем веб-приложения, когда и получить запрос как /area.jsp?id=1, в doFilter методе, направить запрос на http://example.com/newyork.

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> 

Написать следующий класс и поместить его в 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

Как настроить этот фильтр? В nginx.conf или web.xml? как сделать? – Koerr

Смежные вопросы