虽然有的人喜欢用不带www的域名作为主域名,但是个人习惯还是喜欢使用带www的域名,所以虽然破折君这个网站不带www和带www的域名都有做解析但是做了301跳转把带www的作为主域名。不过因为后面子目录下新建了一个网站,跳转功能就出现了问题,我发现这种只能实现首页跳转,子目录不能实现www和不带www的301跳转,如何实现整站从带www上跳转到带www上呢?

301重定向

刚开始在根目录的.htaccess文件中设置统一的php301跳转代码,但是我发现首页可以正常跳转,但是子目录虽然可以实现跳转,但是如果子目录和首页不是同一个程序还是会跳转成和首页一样的链接结构,就会出现404页面,当然假如两个网站是使用同一个程序(比如两个网站都是WordPress),这个方法就是有效的。

但是事实上,大部分两个网站都会是不同程序,比如一个是WordPress,另一个是Dedecms,那就要通过单个目录分别设置不同的.htaccess规则。为了防止伪静态规则冲突,就需要通过如下方法来解决:

第一步:根目录.htaccess规则设置

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

第二步:单个目录强制重定向到www

RewriteEngine on

RewriteCond %{HTTP_HOST} ^example.com$ [NC]

RewriteRule ^(.*)$ http://www.example.com/ABC/$1 [R=301,L]

RewriteBase /ABC/

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^.*$ index.php?$0

注意:将静态页面301跳转代码中的示例example域名及示例文件夹ABC换成你自己对应的域名及文件夹名称。

也许你也感兴趣:

作者:
该日志由 破折君 于2016年09月14日发表在Php研究分类下,
转载请注明: 如何解决不带www跳转到www整站跳转的问题?
关键字: , ,
【上一篇】
【下一篇】

5 篇回应 (访客:3 篇, 博主:2 篇)

  1. 我要网赚 说道:

    我也出现类似的问题

    #1楼
  2. 唯历史 说道:

    我跟你的一样,也是不带www的,301到带www的

    #2楼
  3. 姜辰 说道:

    不错的方法,我直接把所有域名301到www这个

    #3楼
    • 破折君 说道:

      直接跳转一般是可以的,但是我的因为WordPress和dede两个程序一起用,所以直接跳转没生效就要单独设置