springboot中配置urlrewrite实现url伪静态强化网站seo

关于urlrewrite

urlrewrite使用强大的自定义规则来使用用户更容易记住、搜索引擎更容易找到的URL(对于seo比较重要)。通过使用规则模板、重写映射,Web管理员可以轻松地设置规则,根据HTTP标头、HTTP响应或请求标头、变量,甚至复杂的编程规则来定义URL重写行为。此外,Web管理员可以根据重写规则中表示的逻辑进行url重定向、发送自定义响应或停止HTTP请求。

为何有这篇教程

百度上查询urlrewrite这个工具包的使用教程时,网上并没有springboot整合的完整示例,于是就自己摸索的写了一下。

开始:

1.引入maven依赖:

<dependency>
    <groupId>org.tuckey</groupId>
    <artifactId>urlrewritefilter</artifactId>
    <version>4.0.4</version>
</dependency>

2.重写UrlRewriteFilter的过滤器加载urlrewrite.xml规则,urlrewrite.xml放在 resources文件夹下

package webapp.conf;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import org.tuckey.web.filters.urlrewrite.Conf;
import org.tuckey.web.filters.urlrewrite.UrlRewriteFilter;

import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import java.io.IOException;

@Configuration
public class UrlRewriteConf extends UrlRewriteFilter {
    private static final String URL_REWRITE = "classpath:/urlrewrite.xml";

    //注入urlrewrite配置文件
    @Value(URL_REWRITE)
    private Resource resource;

    //重写配置文件加载方式
    protected void loadUrlRewriter(FilterConfig filterConfig) throws ServletException {
        try {
            //将Resource对象转换成Conf对象
            Conf conf = new Conf(filterConfig.getServletContext(), resource.getInputStream(), resource.getFilename(), "@@[email protected]@");
            checkConf(conf);
        } catch (IOException ex) {
            throw new ServletException("Unable to load URL rewrite configuration file from " + URL_REWRITE, ex);
        }
    }
}

3.urlrewrite.xml文件配置,urlrewrite.xml规则示例:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN"
        "http://tuckey.org/res/dtds/urlrewrite3.2.dtd">
<urlrewrite>
    <rule>
        <name>seo redirect 301</name>
        <condition name="host">^9191boke.com$</condition>
        <from>^/(.*)</from>
        <to type="permanent-redirect" last="true">http://www.9191boke.com/$1</to>
    </rule>
    <rule>
        <name>seo redirect 301</name>
        <condition name="host">^localhost:9191$</condition>
        <from>^/(.*)</from>
        <to type="permanent-redirect" last="true">http://www.localhost:9191/$1</to>
    </rule>
    <rule>
        <from>^/([0-9]+).html$</from>
        <to>/blogdetails/$1.html</to>
    </rule>
    <rule>
        <from>^/p_([0-9]+).html$</from>
        <to>/?page=$1</to>
    </rule>
</urlrewrite>

from标签内的表示匹配的模式,<to>标签内的是想要转换的模式。

<rule>

<name>seo redirect 301</name>

<condition name="host">^9191boke.com$</condition>

<from>^/(.*)</from>

<to type="permanent-redirect" last="true">http://www.9191boke.com/$1</to>

</rule>

以上为域名301重定向,所有http(s)://9191boke.com/xxx链接会重定向至http://www.9191boke.com/xxx

<from>^/([0-9]+).html$</from>

<to>/blogdetails/$1.html</to>

^/([0-9]+).html$表示http://xxx/数字.html会发送实际请求为http://xxx/blogdetails/数字.html

<rule>

<from>^/p_([0-9]+).html$</from>

<to>/?page=$1</to>

</rule>

^/p_([0-9]+).html$表示http://xxx/p_数字.html会发送实际请求为http://xxx/?page=数字.html

每一条拦截规则使用rule标签包裹。

这里没有特别需要注意的地方,如果只是简单的使用的话,记住下面这一点就足够了。

如果你会用正则表达式的话,可以通过正则表达式来处理(推荐使用),如果不会,可以使用通配符。

原文地址:https://www.cnblogs.com/007sx/p/11758832.html

时间: 2024-10-15 06:25:08

springboot中配置urlrewrite实现url伪静态强化网站seo的相关文章

在SpringBoot中配置定时任务

前言 之前在spring中使用过定时任务,使用注解的方式配置很方便,在SpringBoot中的配置基本相同,只是原来在spring中的xml文件的一些配置需要改变,在SpringBoot中也非常简单. 已经加入我的github模版中:https://github.com/LinkinStars/springBootTemplate 定时任务的分类 所谓定时任务,就是在项目启动之后,定时的去执行一个任务,从而满足业务的需要. 定时任务分为下面几种,串行,并行,同步,异步 串行,并行:当配置了多个定

Maven 中配置 Urlrewrite 基本配置

1. 在maven项目的pom.xml文件里加入: <!-- URL Rewrite --> <dependency> <groupId>org.tuckey</groupId> <artifactId>urlrewritefilter</artifactId> <version>3.1.0</version> </dependency> 3.在WEB项目的web.xml里加上urlrewrite的

使用URLrewrite进行URL伪静态重写

<?xml version="1.0" encoding="utf-8"?> <!--  有关如何配置 ASP.NET 应用程序的详细信息,请访问  http://go.microsoft.com/fwlink/?LinkId=169433  --> <configuration> <!--使用URLRewriter.dll -->  <configSections>    <section name

SpringBoot中配置不序列化返回值为null的属性

package com.weiresearch.properties; import com.fasterxml.jackson.annotation.JsonInclude;import com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.JsonSerializer;imp

ASP.NET中使用URLRewrite(1):优缺点和使用范围

最近一直在研究ASP.NET中伪静态URLRewrite的实现方法,网上查了很多资料,但始终没有一个完全适合自己的解决方案,所以决定博采众长,归纳整理成一个系列:<ASP.NET中伪静态URLRewrite的实现和配置>.知识虽简,备忘却佳. 优点 一:提高安全性,可以有效的避免一些参数名.ID等完全暴露在用户面前: 二:美化URL,去除了那些比如*.do之类的后缀名.长长的参数串等,可以自己组织精简更能反映访问模块内容的URL: 三:更有利于搜索引擎的收录,通过对URL的一些优化,可以使搜索

spring boot中配置日志log和热部署

Java的日志有很多 个人强烈不推荐log4j ,推荐log4j2和logback 在高并发,多线程的环境下log4j1 的性能和log4j2相比可以用junk来形容  对就是junk.log4j2的异步模式表现了绝对的性能优势,优势主要得益于Disruptor框架的使用,logback比log4j1强但比log4j2弱.此外常规情况下logback要比log4j2的性能优越,毕竟logback是基于log4j的基础上优化的.LogBack和Log4J2是Log4j的改良版本,比Log4j拥有更

1、安装和在eclipse中配置ns-3(ubuntu12.04)

安装ns3的一系列包,脚本如下: #!/bin/sh sudo apt-get install gcc g++ python python-pygccxml sudo apt-get install gcc g++ python python-dev sudo apt-get install mercurial sudo apt-get install bzr sudo apt-get install gdb valgrind sudo apt-get install gsl-bin libgs

在Apache服务器中配置ThinkPHP伪静态URL

ThinkPHP 作为国内最流行的一个PHP框架,由于她开发应用的便捷,便吸引越来越多的开发者开始使用她来做项目的底层架构.像我PHP基础并不是很好,也可以使用她来完成一个像模像样的项目. 下面便分享一些使用ThinkPHP需要了解的东西. 去掉 URL 中的 index.php ThinkPHP是单一入口的,默认的 URL 不是很友好.但 ThinkPHP 提供了各种机制来定制需要的 URL 格式,配合 Apache 里面的 .htaccess 文件,更是可以定制出人性化的更利于 SEO 的

springboot中url地址重写(urlwrite)

在日常网站访问中,会把动态地址改造成伪静态地址. 例如: 访问新闻栏目 /col/1/,这是原有地址,如果这样访问,不利于搜索引擎检索收录,同时安全性也不是很好. 改造之后: /col/1.html. 改造方法: 1.添加urlrewritefilter <dependency> <groupId>org.tuckey</groupId> <artifactId>urlrewritefilter</artifactId> <version&