不带3W重定向带www方法

ps.下面的内容是转载的,经我测试有效。也就是说需要下载两个文件httpd.conf、htaccess(这个可以自己新建别存为)上传至空间根目里面。

但是还有一个地方需在注意:就是.htaccess文件编码是ANSI格式,我的是utf-8结果网页打不开,修改后就可以了。

 

这个问题让我纠结了蛮久啊,因为之前一直不注意SEO,网站带www和不带www的一级域名都被收录了,而且不知道为什么不带www的一级域名被收录比www还多,这可不是我的初衷!这次吸取教训了,以后再开站不要放出一级域名的解析就是最直接有效的办法了!可是已经放出了怎么办?我们大可不必直接关掉一级域名的解析,如果这样做你的站可能会在搜索引擎消失一段时间!虽然过一段时间应该会好起来,可是我们有更好的解决办法!就是重定向url,我用的是apache,对这东西不是很熟,折腾了蛮久!首先我们说说.htaccess

Apache的rewrite规则里的.htaccess要想起作用,必须要注意的三个地方。

如果想启用rewrite重写规则的.htaccess 设置,需要在配置文件httpd.conf注意三个地方。

1、必须开启rewrite_module模块,重写规则才能起作用。
LoadModule rewrite_module modules/mod_rewrite.so把这段前面的分号去掉。

2、必须允许AllowOverride为All。
AllowOverride All才可以让.htaccess配置能起作用。

3、Options的设置里必须加上FollowSymLinks,这样.htaccess配置才能起作用。
即要设置成Options Indexes FollowSymLinks。

这里给个虚拟机设置使用.htaccess

<VirtualHost *:80>
ServerName server
ServerAlias slnis.com www.xxx.com
DocumentRoot /home/www/virtual/xxx.com/htdocs
ServerAdmin xxx@xxx.com

<Directory /home/www/virtual/xxx.com/htdocs>
Options FollowSymLinks IncludesNOEXEC
DirectoryIndex index.html index.php
AllowOverride all
Order Deny,Allow
Allow from all
</Directory>

ErrorLog /home/www/virtual/xxx.com/logs/error_log
CustomLog /home/www/virtual/xxxcom/logs/access_log common
</VirtualHost>
 

然后可以在你的虚拟主机根目录下建一个.htaccess,在这个文件里写一重定向规则!

<IfModule mod_rewrite.c>
RewriteEngine On
rewriteCond %{HTTP_HOST} ^xxx.com [NC]
rewriteRule ^(.*)$ http://www.xxx.com/$1 [R=301,L]
</IfModule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
 

上面是我的设置,在wordpress上面新增重定向代码,把xxx.com重定向到www.xxx.com

可是我设好以上东东后,经过ISA访问,重定向就不启作用!当然知道是ISA的问题,可以找了很久不知道问题在哪,后来发现在发布这个站点时要在发布规则中勾选[转发原始主机头而不是内部站点名称字段中指定的实际主机头(F)]这像重定向才能成功,发现自己发ISA了解非常有限啊,有时间要补补了!

 

全文:http://www.cnblogs.com/yonge/articles/2334386.html

posted @ 2015-11-13 15:06  stma  阅读(1681)  评论(0)    收藏  举报