LiuLiu 发表于 2013-7-8 23:40:08

自己博客的301代码好像写错了,大家帮我看看呢

本帖最后由 LiuLiu 于 2013-7-8 23:54 编辑

自己的wordpress博客,域名用aaa.com代替   需要实现的目标是:将域名(aaa.com和www.aaa.com还有aaa.com/blog/)301到www.aaa.com/blog/。目前我的301用的下面的代码:

1,网站根目录使用如下301代码<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ http://www.aaa.com/blog/$1
RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php
</IfModule>
2,网站/blog/目录下面放的301代码# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ -
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php
</IfModule>
# END WordPress
自己访问测试,以及使用一些http返回值的查询服务,状态都是301正常,并且是正常重定向到www.aaa.com/blog/。但是谷歌的cdn服务(Google Page Speed Services)提醒我,检测到了从www.aaa.com 到 aaa.com的301代码。Google Page Speed Services必须是 aaa.com 301到www.aaa.com,否则加速不生效。最近自己博客好像速度是挺慢的,估计自己的301的确设置错了,导致cdn加入没生效。搜索了下,尝试自己改了301,结果没成功。

请各位大神小神各种神指点下我,谢谢。对了,补充一下,用的cent os 的虚拟服务器。

fatiery 发表于 2013-7-9 01:42:23

aaa.com和www.aaa.com 301转向到www.aaa.com/blog/RewriteEngine On
RewriteCond %{HTTP_HOST} ^aaa\.com$
RewriteCond %{HTTP_HOST} ^www\.aaa\.com$
RewriteRule ^/?$ "http\:\/\/www\.aaa\.com\/blog\/"

yoo 发表于 2013-7-9 07:18:56

本帖最后由 yoo 于 2013-7-9 07:34 编辑

如果你是用.htaccess文件来实现的话,这个文件只需要放在网站根目录下,不要在blog目录下还放置这个文件。
你的要求可以分为两个部分,一个是将aaa.com的任何文件都转向www.aaa.com下,另一个是访问www.aaa.com域名时转向到blog目录下。
第一个用很简单的.htacccess文件就可以实现,内容用下面这个
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^aaa.com$
RewriteRule ^(.*)$ http://www.aaa.com/$1
第二个部分是在根目录下放置一个index.php,在这个文件里用php代理进行301跳转到blog目录下,这个PHP程序的代码可以这样
Header( "HTTP/1.1 301 Moved Permanently" );
header("Location: http://www.aaa.com/blog/");
exit;

LiuLiu 发表于 2013-7-9 13:01:31

yoo 发表于 2013-7-9 07:18 static/image/common/back.gif
如果你是用.htaccess文件来实现的话,这个文件只需要放在网站根目录下,不要在blog目录下还放置这个文件。
...

你好版主,谢谢你的帮助。不过我我这里还是有个问题。

我用了你的代码后,Google没有检查到原来那个错误的301了,但是有个新问题。就是访问的时候,会不断重定向到http://www.aaa.com/blog/blog/blog/blog/blog/blog/blog/blog/blog/blog/blog/blog/blog/blog/blog/blog/blog/blog/blog/blog/blog/blog这是怎么回事呢。在/blog/目录的.htaccess文件已经删除,但是检查发现wordpress会自动创建一个新的.htaccess文件,删除后又自动创建,内容如下:
ErrorDocument 404 /blog/wp-content/plugins/wpppm/wpppm.php

LiuLiu 发表于 2013-7-9 13:36:30

fatiery 发表于 2013-7-9 01:42 static/image/common/back.gif
aaa.com和www.aaa.com 301转向到www.aaa.com/blog/

谢谢版主帮助,不好意思增加一个条件,就是ref.aaa.com (google加速用的页面)不做301

因为我用了你提供的代码,好像一直是博客首页访问正常,其他任何页面无法加载,我怀疑是ref.aaa.com也被301了

yoo 发表于 2013-7-9 14:59:44

LiuLiu 发表于 2013-7-9 13:01 static/image/common/back.gif
你好版主,谢谢你的帮助。不过我我这里还是有个问题。

我用了你的代码后,Google没有检查到原来那个错误 ...

从域名转移到blog/目录,是根目录下的index.php文件中的代码来实现的,这个文件是在网站根目录下,不是/blog/目录下的。你这里产生多次循环跳转,肯定是.htaccess文件里出问题了,我给出的.htaccess文件并没有这种跳转。
blog目录下自动生成的.htaccess文件,不要管他就是了。

LiuLiu 发表于 2013-7-9 15:50:41

本帖最后由 LiuLiu 于 2013-7-9 15:55 编辑

yoo 发表于 2013-7-9 14:59 static/image/common/back.gif
从域名转移到blog/目录,是根目录下的index.php文件中的代码来实现的,这个文件是在网站根目录下,不是/b ...
index.php 是放置在根目录的。

会不会是wordpress的某些插件的问题呢? 还有更改这个是即时生效吧? 现在突然觉得会不会是谷歌的cdn要缓存,导致效果没有实时出来哦

yoo 发表于 2013-7-9 15:57:22

LiuLiu 发表于 2013-7-9 15:50 static/image/common/back.gif
index.php 是放置在根目录的。

会不会是wordpress的某些插件的问题呢? 还有更改这个是即使失效吧? 现 ...

出现这种循环跳转是因为你用了别的.htaccess文件,而不是我给的那个。

LiuLiu 发表于 2013-7-9 17:54:06

本帖最后由 LiuLiu 于 2013-7-9 18:37 编辑

yoo 发表于 2013-7-9 15:57 static/image/common/back.gif
出现这种循环跳转是因为你用了别的.htaccess文件,而不是我给的那个。
不好意思,我再试了一次,还是不行。不过我记错了一个,用了您的代码后,出现的错误是:博客主页可以正常访问,就是访问aaa.com 可以正常跳转到www.aaa.com/blog/但是任何post,page页面都打不开(firefox打开加载白天后是空白页,chrome 加载半天提示Oops! This link appears to be broken.),博客主页正常打开。

我确定用的你上面的代码,只修改了很小一部分,修改部分如下:<?php
Header( "HTTP/1.1 301 Moved Permanently" );
header("Location: http://www.aaa.com/blog/");
exit;
?>如果不修改的话,无法从域名转移到blog目录,而是直接在网页显示index.php里面的内容。,



版主麻烦再帮我看下呢,谢谢。

LiuLiu 发表于 2013-7-9 18:46:20

yoo 发表于 2013-7-9 15:57 static/image/common/back.gif
出现这种循环跳转是因为你用了别的.htaccess文件,而不是我给的那个。

另外,我换回我原来的跳转代码后,访问正常,但是好像没有用上加速,版主能不能帮我看下我原来的代码哪行代码导致从aaa.com跳转到www.aaa.com了,然后我删除哪部分代码测试下呢,谢谢。

fatiery 发表于 2013-7-9 19:11:43

LiuLiu 发表于 2013-7-9 13:36 static/image/common/back.gif
谢谢版主帮助,不好意思增加一个条件,就是ref.aaa.com (google加速用的页面)不做301

因为我用了你提 ...

你说:因为我用了你提供的代码,好像一直是博客首页访问正常,其他任何页面无法加载
我说:我这个代码就是将aaa.com和www.aaa.com 301转向到www.aaa.com/blog/,你说的其他任何页面跟这个代码无关。请你告诉我,其他页面无法加载是指网站aaa.com和www.aaa.com下的页面无法加载还是网站www.aaa.com/blog/下的页面无法加载,如果你是要将aaa.com和www.aaa.com的对应的网页转向到www.aaa.com/blog/下,比如:www.aaa.com/a.html转向到www.aaa.com/blog/a.html请告诉我。

你说:我怀疑是ref.aaa.com也被301了
我说:ref.aaa.com是否被做了301转向和我这段代码也没有关系,你需要查ref.aaa.com对应文件夹下的.htacccess或者是主页文件如index.php或index.html。你可以先查下ref.aaa.com对应文件夹下有没有.htacccess,有的话备份到本机,删除服务器上的,看看还会不会被转向,如果不转,就是.htacccess的问题,你可以查.htacccess的具体代码;如果没有.htaccces或者还是转向,那就查下主页文件里面的代码是怎么写的,这个可能比较复杂,因为通过主页文件可能需要查很多关联的文件,比如模板里的文件。还有就是考虑下有没有用什么插件。

先用上面的方法试下,不行你直接加我QQ37877700,我帮你看下。

LiuLiu 发表于 2013-7-9 20:09:38

我发觉我把所有.htaccess文件(根目录和blog目录)删除后,google仍然提示Your customers are not receiving the benefits of PageSpeed Service

We have detected a 301 redirect from www.aaa.com to aaa.com. Please consult this FAQ to learn how to remove this redirect.我觉得应该是Google的检测出错,或者是我自己空间配置出错了,:'(

LiuLiu 发表于 2013-7-9 20:25:43

而且使用谷歌提供的网站测试工具,检测结果又是我用了cdn加速的。所以我进一步觉得是google的检测错了,不弄了。

感觉自己很多知识不懂,需要系统的学习下了。谢谢fatiery版主还有yoo版主的帮助。

LiuLiu 发表于 2013-7-9 23:14:52

yoo 发表于 2013-7-9 15:57 static/image/common/back.gif
出现这种循环跳转是因为你用了别的.htaccess文件,而不是我给的那个。

版主,最后在问您一个问题,我把根目录下的.htaccess文件删除了,只留了一个index.php文件,内容就是你的,然后在博客blog目录用.htaccess文件重定向,.htaccess文件内容如下# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ -
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php
</IfModule>
# END WordPress
这养没问题吧

yoo 发表于 2013-7-10 07:23:15

LiuLiu 发表于 2013-7-9 23:14 static/image/common/back.gif
版主,最后在问您一个问题,我把根目录下的.htaccess文件删除了,只留了一个index.php文件,内容就是你的 ...

.htaccess文件放在网站的根目录下,不要放在任何子目录下。你这个问题很简单,其实就是不带www域名转向带www域名,另一个就是从域名首页转向blog目录的首页。
你的blog内页无法打开的问题:如果你用了静态化的SEO插件,一定要将这些静态化部分加入到.htaccess文件中,如果没有静态化,那可能是博客设置的问题。
页: [1] 2
查看完整版本: 自己博客的301代码好像写错了,大家帮我看看呢