• 七角七分博客欢迎大家光临

openshift近日更新导致以往.htaccess无效解决方法及301重定向各类写法集

随笔 七七 10年前 (2014-11-09) 0个评论

最近发现openshift空间已经不让全站重定向,也就是说如果你要选择带www那么就只能做一个主域名的重定向,而不能像以前一样进行全站的重定向!
以11月前,本人博客一直用的以下.htaccess代码进入网站的301重定向:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(qjqf\.com)(:80)? [NC]
RewriteRule ^(.*) https://www.qjqf.com/$1 [R=301,L]
Options FollowSymLinks

而近段时间openshift经过两次更新后发现导致301重定向失效,网页显示重定向循环的问题,经过多次尝试,发现用以下代码可行:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.qjqf.com$ [NC]
RewriteRule ^(.*)$ https://www.qjqf.com$1 [L,R=301]

以前用的也就是说,如果输入qjqf.com之类的,则转向到带www的,也是最常用最觉的一种写法,而现在则是进去非域名跳转行为,现在则是非www.qjqf.com进入网站的则定向到带www的.

1.重定向domain.com到www.domain.com
这种重定向旨在使域名唯一,是网站SEO必须要做的,后面重定向www.domain.com到domain.com也是出于同样的原因,只是形式不同。打开.htaccess文件,加入以下规则。(下面的规则是针对主域名的,子域名要修改,否则子域名也会被重写,下面会专门对这个进行说明)

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com$1 [L,R=301]
2.重定向www.domain.com到domain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com$1 [L,R=301]
3.重定向olddomain.com到www.newdomain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} !olddomain.com$ [NC]
RewriteRule ^(.*)$ http://www.newdomain.com$1 [L,R=301]
4.重定向olddomain.com to newdomain.com
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !olddomain.com$ [NC]
EewriteRule ^(.*)$ http://newdomain.com$1 [L,R=301]
5.重定向domain.com/file/file.php 到 otherdomain.com/otherfile/other.php
RewriteCond %{HTTP_HOST} ^www.domain.com$
RewriteRule ^file/file.php$ http://www.otherdomain.com/otherfile/other.php [R=301,L]
5.重定向domain.com到www.domain.com,而且不影响子域名
之所以特别说明不影响子域名,是由于上面说的那个方法只有在没子域名的情况下才可行,如果域名含有子域名,而且子域名又不想被重定向,这时候就需要下面的方法来进行301重定向;

RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www.hnqss.cn|t.hnqss.cn)$ [NC]
RewriteRule ^(.*)$ http://www.hnqss.cn$1 [L,R=301]
上面的代码说明:第一行表示说开启mod-rewrite,第二行就表示要重定向的对象,代码的意思是出了www.hnqss.cn和 t.hnqss.cn这两个域名之外的所有域名,因为本博含有一个子域名的微薄t.hnqss.cn,意思是当域名是t.hnqss.cn的时候不 进行重定向,第三行表示要重定向的目标。上面是一个例子,其实主要思想还是正则表达式,如果有多个子域名不想重定向,则同样的可以在第二行进行添加!有什 么问题大家可以在后面提出,我知道的尽量解答。

特别注意的是,本文的这些方法只适用于支持htaccess文件的系统,即只适用于Linux系统,至于windows系统的空间暂时我还没研究。

喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址