这段时间遇到好几个做站的朋友问我怎么写规则把网站不带斜杠自动跳转到带斜杠,想301跳转聚集权重。
我在网上搜索了下,都是千钧一律,根本没有什么实际的用途,全部是复制的结果。
其实方法很简单,只要大家会用permanent这个语法就可以了,
Windows+iis的方法如下:
第一种情况 “/目录(不变)/参数(变化)”
<rule name="已导入的规则 1" stopProcessing="true"> <match url="^目录/([0-9]+)$" ignoreCase="false" /> <action type="Redirect" url="/目录/{R:1}/" redirectType="Permanent" /> </rule>
第二种情况 “/目录(变化)/参数(变化)”
<rule name="已导入的规则 1" stopProcessing="true"> <match url="^([0-9]+)/([0-9]+)$" ignoreCase="false" /> <action type="Redirect" url="/{R:1}/{R:2}/" redirectType="Permanent" /> </rule>
Linux+nginx的方法如下:
第一种情况 “/目录(不变)/参数(变化)”
nginx: rewrite ^(.*)/目录/([0-9]+)$ /目录/$1/ permanent;
第二种情况 “/目录(变化)/参数(变化)”
nginx: rewrite ^(.*)/([0-9]+)/([0-9]+)$ /$1/$2/ permanent;
如果是https的话大家会发现http先301然后再次跳转,这样可以设置为:
rewrite ^(.*)/([0-9]+)_([0-9]+)$ https://$host/$2_$3/ permanent;
其中的([0-9]+)根据自己的参数可以改为([0-9a-zA-Z-/]+)这一类,大家灵活使用即可。