今天在将网站地图提交给google时,不能通过,原因是url是动态的,还参数,如这样/d?B=2&A=1
没办法,只能改成静态的。改成静态的几类方式,一种是直接在程序里生成html,使用模板;另一种是使用httpd的RewriteRule功能,这个叫伪静态。不过对搜索引擎来说真静态和伪静态是一样的。
配置如下:
1、修改<VirtualHost *:443> 配置
添加如下内容
<VirtualHost *:80> ServerName yourdomain <Location /> ProxyPass ajp://127.0.0.1:8010/ Order allow,deny allow from all </Location> RewriteEngine on RewriteRule /detail-([0-9]+)-([0-9]+)\.html /d?B=$1&A=$2 [PT] ErrorLog logs/tech-error_log</VirtualHost>
RewriteEngine on 是开启重定向引擎
RewriteRule /detail-([0-9]+)-([0-9]+)\.html /d?B=$1&A=$2 [PT] 是配置规则,$1 $2是点位符,([0-9]+)是正则表达式,意思是访问 /detail-2-4.html 将跳转到/d?B=2&A=4
2、也是很关键一步,记得修改jsp中的href 值,之前是/d?B=2&A=4,现在不行了,得改成和上面的配置规则一样的/detail-${变量}-${变量}.html。
如果有多样URL要配置,多添加几条,如下
<VirtualHost *:80> ServerName yourdomain <Location /> ProxyPass ajp://127.0.0.1:8011/ Order allow,deny allow from all </Location> RewriteEngine on RewriteRule /article-([0-9]+)\.html /d?a=$1 [PT] RewriteRule /list-([0-9]+)\.html /list?b=$1 [PT] RewriteRule /list-([0-9]+)-([0-9]+)\.html /list?b=$1&p=$2 [PT] </VirtualHost>