Ray,

Several months ago I wrote a resolution to handle permanent redirects. The redirect was dependent on information in the database thus I was not able to outsource this to httpd.

The code is attached; feel free to use it.

Also, to those in the Stripes community, would it make sense to add support for permanent redirects to Stripes? Perhaps this could be added as an option on RedirectResolution? If so, I would be happy to add the issue to JIRA and create a patch.

Best,
Andy


Stone, Timothy wrote:
Without writing your own Resolution, e.g., PermanentRedirectResolution,
you might try:

1. a ForwardResolution to a resource that generates your 301
2. a ForwardResolution to a resource that performs mapped lookup in
Apache (or other HTTPD), using a query or path element, for a 301.

Writing your own Resolution, extending RedirectResolution, overriding
the execute method, seems plausible. In order of complexity, it might be
the most complex, with #1 being the easiest, IMHO.

Regards,
Tim

-----Original Message-----
From: Ray Vanderborght [mailto:[email protected]] Sent: Sunday, July 12, 2009 12:40 AM
To: [email protected]
Subject: [Stripes-users] Permanent redirect?

Is there a way to do a permanent (301) redirect from inside a stripes action?

What I'm doing is adding keywords to the end of my urls for better SEO, and I'm redirecting existing urls to the new ones with the keywords added. I'm using a RedirectResolution now to accomplish this but it's issuing a temporary (302) redirect instead of a permanent redirect.

This article on a related topic (the canonical tag) mentions a 301 redirect as being the right thing to do in this case:
http://www.mattcutts.com/blog/canonical-link-tag/ (slide #4).

Anyhow I'm not too hung up on it, but if there's a way to do a permanent redirect that I'm just missing let me know. Thanks.



Barclays             www.barclaycardus.com

This e-mail and any files transmitted with it may contain confidential and/or 
proprietary information. It is intended solely for the use of the individual or 
entity who is the intended recipient. Unauthorized use of this information is 
prohibited. If you have received this in error, please contact the sender by 
replying to this message and delete this material from any system it may be on.



------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge This is your chance to win up to $100,000 in prizes! For a limited time, vendors submitting new applications to BlackBerry App World(TM) will have the opportunity to enter the BlackBerry Developer Challenge. See full prize details at: http://p.sf.net/sfu/Challenge
_______________________________________________
Stripes-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-users
import net.sourceforge.stripes.action.ActionBean;
import net.sourceforge.stripes.action.RedirectResolution;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class PermanentRedirectResolution extends RedirectResolution {
        public PermanentRedirectResolution(String url) {
                super(url);
        }

        public PermanentRedirectResolution(Class<? extends ActionBean> 
beanType) {
                super(beanType);
        }

        public PermanentRedirectResolution(Class<? extends ActionBean> 
beanType, String event) {
                super(beanType, event);
        }

        @Override
        public void execute(HttpServletRequest request, HttpServletResponse 
response) throws ServletException, IOException {
                String url = getUrl(request.getLocale());
                String contextPath = request.getContextPath();

                if (contextPath.length() > 1 && !url.startsWith(contextPath + 
"/")) {
                        url = contextPath + url;
                }

                url = response.encodeRedirectURL(url);

                response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
                response.setHeader("Location", url);
        }
}
------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
_______________________________________________
Stripes-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-users

Reply via email to