nginx不帶www到www域名的重定向
對(duì)于單一入口的程序如何做301重定向由于網(wǎng)站的url 由動(dòng)態(tài)改為了偽靜態(tài),原先的動(dòng)態(tài)網(wǎng)址依然能夠訪問,導(dǎo)致原先的url 的權(quán)重?zé)o法轉(zhuǎn)移,所以對(duì)原來的url 做301重定向,并在百度站長(zhǎng)中提交網(wǎng)站改版請(qǐng)
對(duì)于單一入口的程序如何做301重定向
由于網(wǎng)站的url 由動(dòng)態(tài)改為了偽靜態(tài),原先的動(dòng)態(tài)網(wǎng)址依然能夠訪問,導(dǎo)致原先的url 的權(quán)重?zé)o法轉(zhuǎn)移,所以對(duì)原來的url 做301重定向,并在百度站長(zhǎng)中提交網(wǎng)站改版請(qǐng)求。
網(wǎng)上的教程都是直接根據(jù)文件重定向的,對(duì)于單一入口的程序不適用,所以寫下次教程。
示例:
if ($args ~* mod=item&act=view&id=(d ) ) {
rewrite ^/(.*)$ http://$host/item/$arg_id.html? permanent; }
$args是當(dāng)前url 問號(hào)后面的部分,相當(dāng)于$query_string
$arg_id是id 的值,格式為$arg_
rewrite 是url 重寫命令
permanent 代表的是返回301永久重定向狀態(tài)碼
$host為當(dāng)前網(wǎng)站的域名部分
結(jié)尾的問號(hào)代表不會(huì)將url 后面的參數(shù)一起帶過去
^和$是代表的是正則匹配
if 條件中的(d )代表的是數(shù)字參數(shù),如777
注意:nginx 中if 命令不能嵌套,不能有多條件
if 條件中的等號(hào)只有一個(gè)
注意if 的空格問題
,if 條件中可以有多條url 重寫語(yǔ)句
重定向是基于文件的,示例中是適用于index.php?mod=a&act=b的結(jié)構(gòu) 如:rewrite 文件A 重定向到某地址
示例:
rewrite ^/good.php$ http://$host permanent;
rewriet ^/good1.php$ http://$host/ permanent;
如果需要對(duì)網(wǎng)站的域名進(jìn)行重定向,可參考以下示例:
將不帶www 的域名重定向到帶www 的域名
server{
......
server_name www.fsech.com fsech.com
......
if ($host = fsech.com) {
rewrite ^(.*)$ http://www.fsech.com permanent;
}
}