这个。。。其实阿福觉得这个题目非常的绕。绕的有点头晕。好吧,其实可以不用管后面的,只管前面的。这个问题是一个朋友很久以前问阿福的。具体多久?别问阿福。。阿福这个人懒。
好吧,现在趁着生病,整个人很闲就研究一下。其实这玩意很简单,因为阿福当时告诉他的就是wordpress后台的设置里面设置了url地址的话,他会自动跳转的。不过 那玩意不适合其他程序的,因此还得再根源上入手。
根源就是nginx
而解药呢就是:
rewrite ^/(.*)$ http://www.rffan.info/$1 permanent;
但是怎么服用呢?是外敷还是内服?别急,且听阿福慢慢道来。
上面这个语句就是咱们301的关键点。但是还有一个关键点就是nginx的vhost 配置文件的server字段:
server {
listen:80;
server_name rffan.info www.rffan.info;
}
上面这个字段是一个非常美妙的字段让我们领略到了既能访问www又能访问不带www的好处。但是很可惜SEO的需求,咱们得治了“既”“又”的毛病。既然解药都有了,那么我们为何还在这里扯皮呢?赶紧加进入吧。别急,还有一道关卡,如果单单把上面的rewrite加进入conf的话可能会报错。
server {
listen:80;
server_name rffan.info www.rffan.info;
rewrite ^/(.*)$ http://www.rffan.info/$1 permanent;
}
那么该如何改进呢?加个判断呗~于是乎最终的server字段改动就出炉了。
server {
listen:80;
server_name rffan.info www.rffan.info;
if ($host = ‘rffan.info’){
rewrite ^/(.*)$ http://www.rffan.info/$1 permanent;
}
大功告成,另外玩过C的可别吐槽,虽然nginx是用c编的,但是很可惜他的判断相同还是不相同不是用“==”而是“=”这个很难以置信吧?
}
未经允许不得转载:啊福主机 » Nginx配置301重定向,搞定从不带www 301到带www