URL отмечен дублированный контент, когда есть другой URL на тот же домен, который возвращает точно тот же ответ. И да, вы должны определенно беспокоиться об этом, если SEO важен.
Самый простой способ исправить это, чтобы обеспечить так называемый канонический URL-адрес в голове index.xhtml
. Это должно представлять URL предпочтения, которое находится в вашем конкретном случае, по-видимому, один с именем файла:
<link rel="canonical" href="http://www.domain.com/index.xhtml" />
Таким образом http://www.domain.com
будет индексироваться http://www.domain.com/index.xhtml
. и больше не вызывать дублированный контент. Тем не менее, это не остановит конечных пользователей, которые могут добавлять/распределять разные URL-адреса в любом случае.
Другой способ - настроить перенаправление HTTP 301 на URL предпочтения. Очень важно понять, что источник перенаправления 302 по-прежнему индексируется поисковыми роботами, но происхождение 301 перенаправления не выполняется, только индексируется только целевая страница. Если вы будете использовать 302 по умолчанию, используя HttpServletResponse#sendRedirect()
, тогда вы все равно получите дублирующийся контент, потому что оба URL-адреса по-прежнему индексируются.
Вот пример запуска такого фильтра. Просто нарисуйте его на /index.xhtml
и выполните 301 переадресацию, когда URI не соответствует желаемому пути.
@WebFilter(urlPatterns = IndexFilter.PATH)
public class IndexFilter implements Filter {
public static final String PATH = "/index.xhtml";
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
String uri = request.getContextPath() + PATH;
if (!request.getRequestURI().equals(uri)) {
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); // 301
response.setHeader("Location", uri);
response.setHeader("Connection", "close");
} else {
chain.doFilter(req, res);
}
}
// init() and destroy() can be NOOP.
}
Запрос на 'www.domain.com/index.xhtml' является тем же, что' index.xhtml', вероятно, находится в вашей папке webapps, которая является общедоступной. –
Ваши права. Но я просто хочу избежать дублирования контента. как это сделать. Вы имеете в виду, теперь мне нужно скрыть index.xhtml и отредактировать web.xml –