2009-09-01 31 views
53

Sử dụng tomcat, làm cách nào để nhận được yêu cầu http://www.mydomain.com để chuyển hướng đến http://www.mydomain.com/somethingelse/index.jsp? tôi thậm chí không quản lý để có được một index.html để hiển thị từ http://mydomain.com.Chuyển hướng URL cơ sở Tomcat

+0

là có một lý do .htaccess hay ISAPI sẽ không hoạt động? –

+4

@NonaUrbiz: không phải là .htaccess Máy chủ Apache http cụ thể và không hoạt động với Tomcat? –

+0

Đối với bất cứ ai khác Tomcat dường như không khuyên bạn nên xem tài liệu của họ - https://wiki.jenkins-ci.org/display/JENKINS/Running+Jenkins+behind+Apache – KCD

Trả lời

19

Tên WAR webapp của bạn “ROOT.war” hoặc có chứa thư mục “ROOT”

17

Hãy xem UrlRewriteFilter mà bản chất là một thực java dựa trên mod_rewrite của Apache.

Bạn cần phải giải nén nó vào thư mục ROOT trong thư mục webapps của Tomcat; sau đó bạn có thể định cấu hình chuyển hướng đến bất kỳ ngữ cảnh nào khác trong tệp cấu hình WEB-INF/urlrewrite.xml của nó.

+0

UrlRewriteFilter nhanh và hoạt động tốt cho tôi. [hướng dẫn] (http: //urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/4.0/index.html) có một số tùy chọn tuyệt vời và [bài đăng trên blog này] (http://nematodes.org/martin/2010/02/04/301-permanent-redirect -với-tomcat-howto /) cũng có một số thông tin tốt. – cwd

76

Bạn có thể thực hiện việc này: Nếu cài đặt tomcat của bạn là mặc định và bạn chưa thực hiện bất kỳ thay đổi nào, thì cuộc chiến mặc định sẽ là ROOT.war. Vì vậy, bất cứ khi nào bạn gọi http://yourserver.example.com/, nó sẽ gọi index.html hoặc index.jsp của tệp WAR mặc định của bạn. Tận dụng những thay đổi sau đây trong thư mục webapp/ROOT của bạn cho chuyển hướng yêu cầu http://yourserver.example.com/somewhere/else:

  1. mở webapp/ROOT/WEB-INF/web.xml, loại bỏ bất kỳ bản đồ servlet với con đường /index.html hoặc /index.jsp, và lưu lại.

  2. Xóa webapp/ROOT/index.html, nếu nó tồn tại.

  3. Tạo file webapp/ROOT/index.jsp với dòng này nội dung:

    <% response.sendRedirect("/some/where"); %> 
    

    hoặc nếu bạn muốn trực tiếp đến một máy chủ khác nhau,

    <% response.sendRedirect("http://otherserver.example.com/some/where"); %> 
    

Vậy là xong.

+7

Chỉ cần bướC# 2. Thử nghiệm trên Tomcat 7. – dustmachine

+11

Lệnh sendRedirect là tất cả những gì cần thiết cho tôi. index.jsp chỉ chứa: <% response.sendRedirect ("/ jasperserver"); %> –

+2

Đừng quên thêm <% and %> trước bất kỳ tập lệnh jsp nào –

8

gì tôi đã làm:

tôi đã thêm dòng sau bên trong của ROOT/index.jsp

<meta http-equiv="refresh" content="0;url=/somethingelse/index.jsp"/> 
+2

Điều này thực sự có thể làm hỏng dữ liệu phân tích của bạn, vì giới thiệu sẽ bị mất. – sbichenko

+0

Điều này sẽ hiệu quả, nhưng đó không phải là cách để thực hiện. – AdrianRM

+0

Một lợi ích nhỏ của phương pháp này là nó có thể đi trong index.html thay vì index.jsp – Edd

5

Tested và thủ tục làm việc:

Chuyển đến đường dẫn file ..\apache-tomcat-7.0.x\webapps\ROOT\index.jsp

xóa toàn bộ nội dung hoặc khai báo các dòng mã dưới đây ở đầu index.jsp

<% response.sendRedirect("http://yourRedirectionURL"); %>

Xin lưu ý rằng trong file jsp bạn cần để bắt đầu dòng trên với <% và kết thúc với%>

Các vấn đề liên quan