Apache配置301跳转

我们现在有test和aaa在访问这个discuz论坛,那么这两个域名坑定会分一个主次,尤其是现在搜索引擎他会有一个排名权重,那么官方语言叫做“PR",那么PR高低会有影响的,那搜索引擎分辨不出主次,所以我们现在帮搜索引擎分清主次,这个时候我们就有一种方法叫做跳转:域名的跳转,访问aaa.com跳转到test.com,那我配置一下编辑虚拟主机配置文件

[[email protected] ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

配置跳转,跳转用到一个模块叫做Rewrite模块

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www.aaa.com$

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

</IfModule>

我们来看一下Rewrite模块,有没有加载

[[email protected] ~]# apachectl -M

Loaded Modules:

core_module (static)

authn_file_module (static)

authn_default_module (static)

authz_host_module (static)

authz_groupfile_module (static)

authz_user_module (static)

authz_default_module (static)

auth_basic_module (static)

include_module (static)

filter_module (static)

log_config_module (static)

env_module (static)

setenvif_module (static)

version_module (static)

mpm_prefork_module (static)

http_module (static)

mime_module (static)

status_module (static)

autoindex_module (static)

asis_module (static)

cgi_module (static)

negotiation_module (static)

dir_module (static)

actions_module (static)

userdir_module (static)

alias_module (static)

so_module (static)

deflate_module (shared)

expires_module (shared)

rewrite_module (shared)  共享模块

php5_module (shared)

Syntax OK

我们需要改一下配置:

RewriteCond %{HTTP_HOST} ^www.aaa.com$ 跳转条件

RewriteRule ^(.*)$  http://www.test.com/$1 [R=301,L] 规则 L:表示LAST结束

^:以。。。。。开头

/(.*)是www.test.com/后面的 www.test.com代表HTTP_HOST

用$1去标记 最终会跳转到这个www.test.com 的$1

R=301 这个301是状态码

跳转分两种:一种是301 永久重定向,对搜索引擎友好

一种是302 临时重定向

我们网页域名跳转一定要用301,对搜索引擎非常友好的

可以用curl测试

[[email protected] ~]# curl -x 192.168.140.100:80  www.aaa.com -I

HTTP/1.1 301 Moved Permanently

Date: Mon, 28 Dec 2015 15:56:11 GMT

Server: Apache/2.2.31 (Unix) PHP/5.3.27

Location: http://www.test.com//

Content-Type: text/html; charset=iso-8859-1

测试的时候可以指定一个IP ,-I可以看到状态码

有时候我们也会遇到不止两个域名的情况,aaa或者是bbb

<VirtualHost *:80>

DocumentRoot "/data/www/"

ServerName  www.test.com

ServerAlias www.aaa.com

ServerAlias www.bbb.com

# ErrorLog "logs/dummy-host2.example.com-error_log"

# CustomLog "logs/dummy-host2.example.com-access_log" common

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www.aaa.com$ [OR]

RewriteCond %{HTTP_HOST} ^www.bbb.com$

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

</IfModule>

[OR]表示或者的意思,不加[OR]认为这两个条件同时存在

时间: 2024-10-03 13:44:45

Apache配置301跳转的相关文章

Apache 配置301跳转

首先确定加载了mod_alias 模块 在 <Directory > .................. Redirect permanent "^/abc.html$" "/" Redirect permanent "/ccc" "http://www.baidu.com" </Directory> 这样配置后当访问站点 /ccc目录时就会301跳转至百度 或是访问首页下的abc.html 文件时就

apache域名301跳转和访问控制的优先级

apache域名301跳转和访问控制的优先级 实验背景:apache虚拟主机有两个域名 111.com 222.com 其中222.com 访问的时候跳转到111.com,并且给该虚拟主机做了访问控制,只允许127.0.0.1访问.问题:当访问222.com时,它是先跳转到111.com,还是直接403呢? 打开apache中虚拟主机配置文件: vim /usr/local/apache2/conf/extra/httpd-vhosts.conf,可以看到当前配置如下(没做访问控制措施): 我们

Apache配置域名跳转、日志切割、静态缓存、防盗链、访问控制

·/usr/local/apache2/bin/apachectl  -M:查看安装了哪些模块 ·/usr/local/apache/bin/apachectl   -V:查看使用的模式 ·/usr/local/apache2/bin/apachectl  -t:检查语法错误 ·/usr/local/apache2/bin/apachectl  -l:查看安装的库文件 ·/usr/local/apache2/bin/apachectl graceful:重新加载配置 ·/usr/local/ap

LAMP(3)--apache配置域名跳转

★需求实现 之前搭建discuz时候使用的域名为www.caoyue111.com 现在我们要求实现访问域名www.hera111.com 时跳转到www.caoyue111.com ★配置步骤 我们只需在相应的虚拟主机中加入以下内容 vim /usr/local/apache2/conf/extra/httpd-vhosts.conf <IfModule mod_rewrite.c>   <== 打开rewrite.c模块(可用apachectl -M查看有无此模块)   Rewrit

apache配置-域名跳转、日志切割、静态缓存、防盗链

·/usr/local/apache2/bin/apachectl -M:查看安装了哪些模块     ·/usr/local/apache2/bin/apachectl -t:检查语法错误 ·/usr/local/apache2/bin/apachectl -l:查看安装的库文件 ·/usr/local/apache2/bin/apachectl graceful:重新加载配置·/usr/local/apache2/htcocs         主页存放目录 ·/usr/local/apache

Apache配置域名跳转

需求:要把访问域名 www.ppt.com(或www.ppt1.com) 的域名转发到 www.tpp.com 上实现: [[email protected] abc]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf <IfModule mod_rewrite.c>    RewriteEngine on    RewriteCond %{HTTP_HOST} ^www.ppt.com$    RewriteRule ^(.*)$ ht

Apache 配置域名跳转

域名跳转需要在虚拟主机配置中添加别名和一个 rewrite 模块,如下,配置当访问 www.aaa.com 时跳转到 www.test.com [[email protected] ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf <VirtualHost *:80> DocumentRoot "/data/www" ServerName www.test.com ServerAlias www.aaa.com

IIS服务器下301跳转是怎么样实现的?

301跳转的用法很多,对于一名SEO来说,301转向是必须掌握的本领,但是对于301转向而言,许多人都并不清楚,301跳转以后,需不需要对原网站进行优化,再次提及一边301跳转的定义. 所谓301跳转,对于搜索引擎而言,便是,对搜索引擎发出信息,告诉搜索引擎:“此url地址已经永久的进行跳转到了‘XXX’url地址.”而对于用户而言,301跳转后的网站,在用户使用的时候,输入旧的地址,会自动跳转到新的地址,只是这个过程及其迅速,不可察觉而已. 各种程序.服务器下301跳转的实现: 一: IIS服

Apache强制WWW跳转以及强制HTTPS加密跳转的方法

一般我会较多的使用WORDPRESS程序,其在安装的时候我们如果直接用WWW打开,或者在后台设置WWW域名则默认会强制301指向WWW站点域名.而这里有使用ZBLOG或者TYPECHO等其他博客程序则不会默认301跳转.理论上从用户体验,还是从搜索引擎,最好是统一要么WWW,要么不带WWW格式的网址. 所以,我准备在Apache中用301跳转强制WWW格式,这里我是用的Apache虚拟主机环境所以直接在根目录的.htaccess文件设置就可以. 第一.强制WWW跳转 RewriteEngine