私は jsp 開発者ではありませんが、所有しているオープン ソース ソフトウェアの jsp ページを少し調整したいと考えています。
私がやりたいのは、ページにアクセスするために使用した URL を見つけることだけです 。たとえば、 https://old.example.comとしましょう。もしそうなら、ユーザーをhttps://new.exampleにリダイレクトしたいと思います。 .comですが、明らかにリダイレクト ループに陥りたくありません...
これについてどうすればいいですか...
私は jsp 開発者ではありませんが、所有しているオープン ソース ソフトウェアの jsp ページを少し調整したいと考えています。
私がやりたいのは、ページにアクセスするために使用した URL を見つけることだけです 。たとえば、 https://old.example.comとしましょう。もしそうなら、ユーザーをhttps://new.exampleにリダイレクトしたいと思います。 .comですが、明らかにリダイレクト ループに陥りたくありません...
これについてどうすればいいですか...
次のようなことを試すことができます:
<%
if(request.getRequestURL().toString().equals("https://old.example.com")){
String redirectURL = "https://new.example.com";
response.sendRedirect(redirectURL);
}
%>
また、JSP 内で Java コードを使用したくない場合 (これは悪いプログラミング手法です)、JSTLを使用してこのようなことを試すことができます。
<c:if test="${pageContext.request.requestURL == 'https://old.example.com'}">
<jsp:forward page="https://new.example.com"/>
</c:if>
ビューではなく、コントローラーのジョブのように見えます。
編集済み
しかし、本当にやりたい場合は、次のようなことを試すことができます (JSTL を使用するとします)。
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<c:if test="${fn:contains(pageContext.request.requestURL, 'localhost')}">
<c:redirect url="http://google.com"/>
</c:if>