如何通过URL重写规则实现301重定向
展开全部
如何实施301重定向
①:虚拟主机
Linux虚拟主机设置301跳转方法:
在本地新建一个文本文件,最好用的专业的编辑器软件如EditPlus 将代码粘入
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.abc.com$ [NC]
RewriteRule ^(.*)$ http://www.abc.com/$1 [R=301,L]
说明:上述规则是将站点所以访问域名都重定向到www.abc.com(规则中的域名请修改为自己的域名),如果仅想将绑定在站点上某个域名(如:www.123.com)重定向到www.abc.com,规则如下:
RewriteCond %{HTTP_HOST} ^www.123.com$ [NC]
RewriteRule ^(.*)$ http://www.abc.com/$1 [R=301,L]
如果有多种需求,如abc.com跳转到www.abc.com qwe.com跳转到www.qwe.com,规则如下:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^abc.com$ [NC]
RewriteRule ^(.*)$ http://www.abc.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^qwe.com$ [NC]
RewriteRule ^(.*)$ http://www.qwe.com/$1 [R=301,L]
根据自己的需要进行添加修改,然后上传到服务器wwwroot目录,改名为.htaccess即可
win虚拟主机设置301跳转方法:
手动设置的(没有自动生成)
1、进入主机控制面板,进入ISAPI筛选器设置,点击"开启自定义URL静态化支持"按钮。
2、待开启伪静态功能后,进入FTP文件管理,找到\others\discuz\httpd.conf 修改这里面的规则。
3、示例代码:
RewriteCond %{HTTP:Host} ^abc.com$
RewriteRule (.*) http://www.abc.com$1 [NC,R=301]
#第一条表示要做跳转的域名,第二条表示要跳转到的域名
#如果有很多域名要做跳转,那么可以将第一条规则改为
RewriteCond %{HTTP:Host} !^www.abc.com$
这样,就表示非www.abc.com的域名访问都会跳转到www.abc.com #多个域名做跳转的第二种方法是,首先复制多个 RewriteCond 项,将域名改好 除了最后一项,其余的 RewriteCond 项最后都要加个参数 [OR]即可。
注意:现在很多虚拟主机都自带301的配置,可以在主机控制面板上生成代码信息,然后按照上面的提示进行301重定向。
②:window独立服务
Win独立服务301设置(win2003、win2008):
1、IIS服务器实现301重定向
打开IIS,右键-属性-网站-IP地址那里点编辑增加一个站点,然后绑定一下主机头,也可以绑定更多的闲置域名。如图所示:
打开IIS,首先新建立一个站点,随便对应一个目录E:\wwwroot\301web。该目录下只需要2个文件,一个
default.html,一个404.htm。在欲重定向的网页或目录上按右键;选中“重定向到URL”;在对话框中输入目标页面的地址;切记,记得选
中“资源的永久重定向”;当然,最后要点击“应用”,完成。如下图所示:
注意:win2003跟win2008都是使用IIS服务器,所以301重定向的步骤方法是一样的。
③:Linux独立服务器
Linux独立服务器301设置(红帽企业版、centos):
我用的是红帽企业版,用的是源码包装的Web环境。然后我进入Linux服务器,找到apache的主配置文件 httpd.conf , 我的apache服务器下有多个虚拟主机,我找到我要做301重定向的虚拟主机,然后添加如何的代码(代码是完整的):
1、进入Linux服务器,然后找到httpd.conf的Apache 主配置文件,下图红色框是我所在的完整位置,蓝色框是内容,也就是命令pwd现实所在位置,ls查询当前位置的内容。
既然找到主配置文件了,我们通过命令vi httpd.conf 编辑一下,在最后添加如下完整的代码。要找到配置的那个虚拟主机然后添加代码, 不要乱添加。
ServerName www.abc.com
ServerAdmin webmaster@dummy-host.example.com
LogLevel warn
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
ServerName abc.com
ServerAdmin webmaster@dummy-host.example.com
RewriteEngine on
RewriteRule ^(.*)$ http://www.abc.com$1 [R=301,L]
LogLevel warn
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
注意:不同形式安装的apache 其路径是不同的,有源码包、有YUM等安装方式,两种马路是不一样的,建议新手联系空间商并实施301重定向。
④:绑定/本地DNS
如果具有对本地DNS记录进行编辑修改的权限,则只要添加一个记录就可以解决此问题。若无此权限,则可要求网站托管服务商对DNS服务器进行相应设置。
⑤:DNS服务器的设置
若要将blog.abc.com指向www.abc.com,则只需在DNS服务中应增加一个别名记录,可写成:blog IN CNAME www.abc.com。
如需配置大量的虚拟域名,则可写成:* IN CNAME www.abc.com.
这样就可将所有未设置的以abc.com结尾的记录全部重定向到www.abc.com上。
①:虚拟主机
Linux虚拟主机设置301跳转方法:
在本地新建一个文本文件,最好用的专业的编辑器软件如EditPlus 将代码粘入
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.abc.com$ [NC]
RewriteRule ^(.*)$ http://www.abc.com/$1 [R=301,L]
说明:上述规则是将站点所以访问域名都重定向到www.abc.com(规则中的域名请修改为自己的域名),如果仅想将绑定在站点上某个域名(如:www.123.com)重定向到www.abc.com,规则如下:
RewriteCond %{HTTP_HOST} ^www.123.com$ [NC]
RewriteRule ^(.*)$ http://www.abc.com/$1 [R=301,L]
如果有多种需求,如abc.com跳转到www.abc.com qwe.com跳转到www.qwe.com,规则如下:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^abc.com$ [NC]
RewriteRule ^(.*)$ http://www.abc.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^qwe.com$ [NC]
RewriteRule ^(.*)$ http://www.qwe.com/$1 [R=301,L]
根据自己的需要进行添加修改,然后上传到服务器wwwroot目录,改名为.htaccess即可
win虚拟主机设置301跳转方法:
手动设置的(没有自动生成)
1、进入主机控制面板,进入ISAPI筛选器设置,点击"开启自定义URL静态化支持"按钮。
2、待开启伪静态功能后,进入FTP文件管理,找到\others\discuz\httpd.conf 修改这里面的规则。
3、示例代码:
RewriteCond %{HTTP:Host} ^abc.com$
RewriteRule (.*) http://www.abc.com$1 [NC,R=301]
#第一条表示要做跳转的域名,第二条表示要跳转到的域名
#如果有很多域名要做跳转,那么可以将第一条规则改为
RewriteCond %{HTTP:Host} !^www.abc.com$
这样,就表示非www.abc.com的域名访问都会跳转到www.abc.com #多个域名做跳转的第二种方法是,首先复制多个 RewriteCond 项,将域名改好 除了最后一项,其余的 RewriteCond 项最后都要加个参数 [OR]即可。
注意:现在很多虚拟主机都自带301的配置,可以在主机控制面板上生成代码信息,然后按照上面的提示进行301重定向。
②:window独立服务
Win独立服务301设置(win2003、win2008):
1、IIS服务器实现301重定向
打开IIS,右键-属性-网站-IP地址那里点编辑增加一个站点,然后绑定一下主机头,也可以绑定更多的闲置域名。如图所示:
打开IIS,首先新建立一个站点,随便对应一个目录E:\wwwroot\301web。该目录下只需要2个文件,一个
default.html,一个404.htm。在欲重定向的网页或目录上按右键;选中“重定向到URL”;在对话框中输入目标页面的地址;切记,记得选
中“资源的永久重定向”;当然,最后要点击“应用”,完成。如下图所示:
注意:win2003跟win2008都是使用IIS服务器,所以301重定向的步骤方法是一样的。
③:Linux独立服务器
Linux独立服务器301设置(红帽企业版、centos):
我用的是红帽企业版,用的是源码包装的Web环境。然后我进入Linux服务器,找到apache的主配置文件 httpd.conf , 我的apache服务器下有多个虚拟主机,我找到我要做301重定向的虚拟主机,然后添加如何的代码(代码是完整的):
1、进入Linux服务器,然后找到httpd.conf的Apache 主配置文件,下图红色框是我所在的完整位置,蓝色框是内容,也就是命令pwd现实所在位置,ls查询当前位置的内容。
既然找到主配置文件了,我们通过命令vi httpd.conf 编辑一下,在最后添加如下完整的代码。要找到配置的那个虚拟主机然后添加代码, 不要乱添加。
ServerName www.abc.com
ServerAdmin webmaster@dummy-host.example.com
LogLevel warn
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
ServerName abc.com
ServerAdmin webmaster@dummy-host.example.com
RewriteEngine on
RewriteRule ^(.*)$ http://www.abc.com$1 [R=301,L]
LogLevel warn
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
注意:不同形式安装的apache 其路径是不同的,有源码包、有YUM等安装方式,两种马路是不一样的,建议新手联系空间商并实施301重定向。
④:绑定/本地DNS
如果具有对本地DNS记录进行编辑修改的权限,则只要添加一个记录就可以解决此问题。若无此权限,则可要求网站托管服务商对DNS服务器进行相应设置。
⑤:DNS服务器的设置
若要将blog.abc.com指向www.abc.com,则只需在DNS服务中应增加一个别名记录,可写成:blog IN CNAME www.abc.com。
如需配置大量的虚拟域名,则可写成:* IN CNAME www.abc.com.
这样就可将所有未设置的以abc.com结尾的记录全部重定向到www.abc.com上。
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家提供动态代理服务器服务的企业,旨在帮助用户更好地管理网络访问和安全。以下是一些关于StormProxies的IP动态代理服务的特点:1. 高匿名性:StormProxies的动态代理服务器具有高匿名性,可以有效...
点击进入详情页
本回答由Storm代理提供
展开全部
在设置301重定向之前务必备份相应目录下的.htaccess文件。(Windows主机是在/htdocs目录下,Linux主机是在根目录下)
1.重定向domain.com到www.domain.com
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到newdomain.com
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !olddomain.com$[NC]
RewriteRule ^(.*)$ http://newdomain.com/$1[L,R=301]
5.重定向domain.com/file/file.php到otherdomain.com/otherfile/other.php
RewriteEngine On
RewriteCond %{HTTP_HOST}^www.domain.com$
RewriteRule ^file/file.php$http://www.otherdomain.com/otherfile/other.php
1.重定向domain.com到www.domain.com
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到newdomain.com
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !olddomain.com$[NC]
RewriteRule ^(.*)$ http://newdomain.com/$1[L,R=301]
5.重定向domain.com/file/file.php到otherdomain.com/otherfile/other.php
RewriteEngine On
RewriteCond %{HTTP_HOST}^www.domain.com$
RewriteRule ^file/file.php$http://www.otherdomain.com/otherfile/other.php
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在网站运营的过程中,有时因一些不同的访问要求(譬如使用http://1.abc.com访问的是http://www.abc.com/1,使用http://2.abc.com访问的是http://www.abc.com/2),需对网站访问进行重定向设置。在我司的平台上,最直接最有效的做法是通过URL重写规则实现。下面给出URL重写实现重定向的的一些常用范例。
注意:在设置301重定向之前务必备份相应目录下的.htaccess文件。(Windows主机是在/htdocs目录下,Linux主机是在根目录下)
1.重定向eyu.com到www.eyu.com
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.eyu.com$[NC]
RewriteRule ^(.*)$http://www.eyu.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到newdomain.com
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !olddomain.com$[NC]
RewriteRule ^(.*)$ http://newdomain.com/$1[L,R=301]
5.重定向domain.com/file/file.php到otherdomain.com/otherfile/other.php
RewriteEngine On
RewriteCond %{HTTP_HOST}^www.domain.com$
RewriteRule ^file/file.php$http://www.otherdomain.com/otherfile/other.php
注意:在设置301重定向之前务必备份相应目录下的.htaccess文件。(Windows主机是在/htdocs目录下,Linux主机是在根目录下)
1.重定向eyu.com到www.eyu.com
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.eyu.com$[NC]
RewriteRule ^(.*)$http://www.eyu.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到newdomain.com
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !olddomain.com$[NC]
RewriteRule ^(.*)$ http://newdomain.com/$1[L,R=301]
5.重定向domain.com/file/file.php到otherdomain.com/otherfile/other.php
RewriteEngine On
RewriteCond %{HTTP_HOST}^www.domain.com$
RewriteRule ^file/file.php$http://www.otherdomain.com/otherfile/other.php
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询