Apache下htaccess使用技巧:301重定向、404错误等
Apache下利用 .htaccess设置多个域名301跳转

Apache下利用 .htaccess设置多个域名301跳转本文摘自:/boke/post-171.html用.htaccess实现网址规范化网址规范化在SEO中是一个比较重要的环节,同时存在不同的网址版本,不但可能造成复制,还不能正确的集中权重。
目前大多数网站,绑定域名都有带WWW和不带两个版本,甚至很多网站同时绑定多个域名。
经过处理(跳转、CNAME),对于访问者网址规范化在SEO中是一个比较重要的环节,同时存在不同的网址版本,不但可能造成复制,还不能正确的集中权重。
目前大多数网站,绑定域名都有带WWW和不带两个版本,甚至很多网站同时绑定多个域名。
经过处理(跳转、CNAME……),对于访问者来说可能没有任何影响,看到的都是同样的内容;但对于搜索引擎,就无法确定哪一个网址是真正的主页。
可控因素,网站内容链接应该保持同一个版本,比如整站中,返回首页的地址为固定的一个版本。
但还有一个不可控的因素,就是别人链到你的网站,所使用的网址。
很多自发链接或交换链接时,别人可能会省略掉WWW,或采用绑定的另一域名。
外界因素不可控,我们可以从网站内部来控制。
利用Apache的.htaccess,使用301重定向,规范网址。
新建一个空文件,文件名.htaccess,填入重定向规则后,上传到网站根目录。
用301将不带WWW的域名重定向rewriteEngine onrewriteCond %{http_host} ^ [NC]rewriteRule ^(.*)$ /$1 [R=301,L]用301将绑定的其他多个域名重定向到主域名RewriteEngine onRewriteCond %{HTTP_HOST} ^$ [OR]RewriteCond %{HTTP_HOST} ^$ [OR]RewriteCond %{HTTP_HOST} ^$ [OR]RewriteCond %{HTTP_HOST} ^$ [OR]RewriteCond %{HTTP_HOST} ^$RewriteRule ^(.*)$ /$1 [R=301,L]当然,也可以再扩展一下,将index.html、index.php等也重定向一下:RewriteEngine onRewriteCond %{THE_REQUEST} ^[A-Z]{3,9}/ /index/.php/ HTTP/ RewriteRule ^index/.php$ / [R=301,L]。
apache配置301重定向

seeother
返回一个"参见"状态码(303),表示此资源已经被替代。
gone
返回一个"已废弃"状态码(410),表示此资源已经被永久性地删除了。如果指定了这个状态码,则URL参数将被忽略。
举例:
APACHE http-vhosts.conf配置文件,添加301重定向代码
Redirect 301 /old/old.htm /new.htm #/old/old.htm重定向到new.htm
Redirect permanent /one /two #同上,permanent指令表示返回永久性重定向状态码301
如需配置大量的虚拟域名,则可写成:* IN CNAME .
这样就可将所有未设置的以结尾的记录全部重定向到上。
Redirect [status] URL-path URL
RedirectMatch [status] regex URL
status参数可以使用以下HTTP状态码:
permanent
返回一个永久性重定向状态码(301),表示此资源的位置变动是永久性的。
temp
绑定/本地DNS(域名别名跳转)
如果具有对本地DNS记录进行编辑修改的权限,则只要添加一个记录就可以解决此问题。
若无此权限,则可要求网站托管服务商对DNS服务器进行相应设置。
DNS服务器的设置
若要将指向,则只需在DNS服务中应增加一个别名记录,可写成:aaa IN CNAME 。
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain\.com [NC]
apache301跳转规则

apache301跳转规则
Apache 301 跳转规则是一种重定向机制,用于将一个 URL 永
久重定向到另一个 URL。
这可以通过修改 Apache 服务器的配
置文件中的 `.htaccess` 文件来实现。
以下是一个示例的 Apache 301 跳转规则的语法:
```
RewriteEngine On
RewriteRule ^old-url$ /new-url [R=301,L]
```
上述规则的含义是,当用户访问 `old-url` 时,服务器会将请求
重定向到 `new-url` 并返回 301 状态码,表示永久移动。
`[R=301,L]` 是可选的参数,其中 `R=301` 指定了重定向的类
型为 301,`L` 表示这是最后一个规则,也就是说,如果匹配
到该规则后,将不再尝试匹配其他规则。
你可以根据自己的需求修改 `old-url` 和 `new-url` 的值,以满
足具体的跳转需求。
如果需要多条跳转规则,可以使用多个`RewriteRule` 来实现。
例如:
```
RewriteEngine On
RewriteRule ^old-url1$ /new-url1 [R=301,L]
RewriteRule ^old-url2$ /new-url2 [R=301,L]
```
上述规则会将 `old-url1` 重定向到 `new-url1`,将 `old-url2` 重定向到 `new-url2`。
请注意,修改 `.htaccess` 文件前,请确保你拥有访问服务器的正确权限,并备份配置文件以防止意外情况。
404错误到底能否通过301重定向解决

今天在A5看到了一篇《浅谈利用301重定向将404页面转移成自己外链的危害》,反驳了我之前那篇文章中的观点。我觉得非常好,SEO行业正应该有这种质疑的精神和独立思考的能力。仔细拜读了文章,发现作者误解了我的意思。所以再写一篇文章澄清一下其中的观点,以及介绍一下301重定向的作用。首先我明确两个在《使用301重定向将404错误转化为网站外链》一文中的思路:
首先,对于“自身行为”还是“外部行为”,显然搜索引擎有着明确的区分。拿链接建设来说,内链和外链在权重方面的效果是不同的。这点大家都很清楚。其核心思想就是外链是网站站长无法控制的,而内链是站长可以自行设置的。虽然在搜索引擎的发展过程中,出现“可被站长控制的外链”这一因素(就是平常的外链建设)。但无论可控还是不可控,有一个思想是明确的,即谁也不会在别人的网站可以发布正确URL的前提下,却去发错误的URL,导致用户无法正常访问自己的网站或在自己的网站上出现“该网页不存在”的字眼。
文章所讲述的是将404错误URL,通过301重定向回到原文的URL。这点需要说明,我没有在文章提到任何301到首页或者其他页面的意思,文章中的例子,讲述的是从外部(B网站)链入自身网站(A网站),在过程中有可能出现的URL错误拼写、链接添加错误甚至故意产生错误URL的行为。而不是A网站自身出现的404错误。
网站出现404错误,不一定是网站内部程序的问题。蜘蛛通过外部网站(以B网站为例)一个错误的URL爬行到自身网站(以A网站为例),同样会造成404错误,即:错误的URL导致了错误的页面。蜘蛛是不会管你链接URL存在于网站内部还是外部,只要在顺着URL爬行的过程中出现了“页面不存在”的情况,就会记录一个404错误。
htaccess 高级规则

htaccess 高级规则在.htaccess文件中,你可以使用一些高级规则来定制你的网站的行为。
以下是一些常见的.htaccess高级规则:1. 错误处理:使用ErrorDocument指令来指定错误页面。
例如,当访问不存在的页面时,可以重定向到自定义的404错误页面。
2. 重定向:使用Redirect或RedirectMatch指令来实现页面或URL的重定向。
这可以帮助你更改网站的URL结构或将旧URL重定向到新URL。
3. 访问控制:使用Order和Allow/Deny指令来限制对特定目录或文件的访问。
你可以根据IP地址、用户代理或请求方法来允许或拒绝访问。
4. 内容过滤:使用AddType和AddHandler指令来指定文件类型和请求的处理程序。
这可以帮助你控制对特定文件类型的访问,例如禁止直接访问PHP文件。
5. 缓存控制:使用Expires和Cache-Control指令来控制页面缓存。
这可以提高网站的加载速度并减少服务器负载。
6. 自定义头部:使用Header指令来设置自定义头部信息,例如设置响应头、设置CORS策略等。
7. 限制请求方法:使用Limit指令来限制对特定目录或文件的请求方法。
例如,只允许GET和POST请求访问某个目录。
8. 防盗链:使用RewriteRule和Header指令来防止其他网站盗链你的资源。
这可以通过检查请求的Referer头来实现。
这些只是.htaccess高级规则的一部分,具体规则取决于你的需求和网站的情况。
在编写规则时,请注意测试和验证规则以确保它们按预期工作,并注意不要过度限制或混淆用户的访问权限。
Apache下htaccess的配置使用详解(原创亲测)

Apache 下 htaccess 的配置使用详解(原创亲测) 的配置使用详解(原创亲测) 看到群里很多前辈都在讨论.htaccess 的用法,自己之前也小用过, 只做了 404 的重定向,当然.htaccess 的功能远不止这些,他还可以帮助我们做很多(比如: 自定义错误页面,禁止目录被浏览,地址重定向,目录保护,改变默认首页索引, 防止网站图片盗链 等).今天我在本地 localhost 将 apache 下 htaccess 做了详 细的整理和测试. 为什么要使用.htaccess? 为什么要使用 答:很多网站都是租用服务器和虚拟主机的,其服务器的配置 我们并不能改.当我们有特殊要求时,比如定义最简单的 404(页面未找到)的错 误页面,我们就只能通过 apache 配置的扩展配置(或者说是子配置)来更改扩展 原服务器的配置. 这个配置就是.htaccess 文件, 他想但与 apache 下的 http.conf 文件的延续. 使用.htaccess 的条件 使用 答:要在服务器上使用.htaccess 文件配置,必须要求服务器 开通对于的支持.两个条件:1.mod_rewrite 模块开启;2. AllowOverride All 要使用.htaccess,apache 下 http.conf 该如何配置 , 要使用 答:很简单,只需要改两个地方: 1. 将工作目录下的 AllowOverride None 改为 AllowOverride All. 具体位置 为你可以在 http.conf 下搜索 AllowOverride controls what directives may be placed in .htaccess files. 该句下面的那个 AllowOverride 就是 要改的位置. 2. 开启.mod_rewrite 模块.将#LoadModule rewrite_module modules/mod_rewrite.so 前的#去掉即可..htaccess 实现各种功能的配置写法自定义错误页面 配置解答:写法:ErrorDocument 错误代码空格/目录名/文件名.扩展名例子:ErrorDocument 404 /404.html ErrorDocument 500 /help/errors/internalerror.html这样当文件未找到(404)或者服务器错误(500)时就会自动跳转至写好的提示页, 有助于网站的用户体验.至少不会显示浏览器默认的提示信息,也可以防止服务器 的信息泄露,既安全又友好.禁止/允许目录被浏览 禁止 允许目录被浏览 配置解答:写法:IndexIgnore */*很多服务器本身就已经禁止了目录被浏览并会提示.如果你在建站初 期调试,想要开通此功能也未尝不可.只需要添加一句:写法: Options +Indexes页面或网址重定向 配置解答:写法 1:Redirect permanent [old directory or file name][空 格][new directory or file name]其中 permanent(永久)是为了告诉搜索引擎,老的链接已经移到新链接了.写法 2:Redirect /旧页面地址[空格]新页面的地址 例子: Redirect permanent /oldhtmlfile.htm /newhtmlfile.htm这可以帮助我们将用户引导到我们想让其看到的页面,也可以用作域名的重定向. 有时候某些目录我们不想对用户开放,比如 cache 目录禁止用户直接输入地址访 问,我们就可以用 htaccess 的重定向配置将其直接带到首页.改变默认首页索引页 配置解答:写法: DirectoryIndex homepage.htm DirectoryIndex somepage.htm多个文件名之间可以用空格隔开,这样就会按顺序将所有列出的文件列为可能的索 引文件, 记住,每一个入口只能写在一行.DirectoryIndex homapage.html somepage.html myindexpage.html anything.html防止网页图片被盗连 配置解答:很多服务器供应商都是限流量和限 cpu 的.特别是流量,每个月超过了限制的流量 就需要支付额外的大洋,而自己网站的图片被盗链这就相当于别人耗了你的流量却 并没有给你带来流量.那是相当郁闷的.自然要防止被盗连.同时有些隐私比如用 户的相册如果被盗连了可能泄露隐私,这也是不好的.你可以看到百度空间,sina 博客,qq 空间均作了防盗链的处理.写法: RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?your-domain. com/.*$ [NC] RewriteRule .(gif|jpg)$ - [F]在上面的代码中,将[your-domain]用你真实的域名代替[没有 www],对于 (www.\),用实际的子域名代替(sub-domain.\).或者用图片代替之,这样别人盗链的图片就会显示你所要提示的图片. RewriteEngine on RewriteCond % !^$ RewriteCond % !^http://(www/.)?域名.com/.*$ [NC] RewriteRule /.(gif|jpg)$ http://www.域名.com/替代图片文件名 [R,L]使用.htaccess 文件的不足 使用1,性能 AllowOverride 启用了使用.htaccess 文件,则 apache 需要在每个目录 中查找.htaccess 文件.因此会导致性能下降.另外对每一个请求,都需要读取一 次.htaccess 文件,还有 apache 必须在所有上级的目录中查找.htaccess 文件以使有效的指令都起作用,比如如果客户端请求/www/htdocs/help 中的页面.服务 器必须查找 /.htaccess /www/.htaccess /www/htdocs/.htaccess /www/htdocs/help/.htaccess 四个额外文件 (即使这些文件都不存在, 当然你可以仅仅允许根目录使用.htaccess 文件),也就是说目录深度越深,则访问的额外文件越多,性能越低了. 2,安全 由于在/www/htdocs/help 下面的.htaccess 文件中放置指令与在主配置文件中 <Directory /www/htdocs/help>中放置相同的指令是完全等效的,这样允许用 户自己修改服务器配置, 可能就会导致某些不愿意发生的意想不到的修改,这样就会造成服务器安全问题. 这样你就必须考虑是否设置 AllowOverride None 来完全禁用.htaccess 文件. 原创,转载请注明。
Apache服务器301重定向详解

Apache服务器301重定向详解301重定向(301 redirect)又叫301代表永久性转移(Permanently Moved),将各种网络请求重新定个方向转到其它位置,是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。
下面说下两种情况下的301重定向方法。
一、WWW域名的重定向。
这是我们大多数站长建站后都会面对的一种情况。
那么如何做呢?将不带www重定向带www的地址,以和请看如下代码:<Files ~ "^.(htaccess|htpasswd)$">deny from all</Files>RewriteEngine onRewriteCond %{HTTP_HOST} ^(baidu\.com)(:80)? [NC]RewriteRule ^(.*) /$1 [R=301,L]order deny,allow如果是将带www的定向到不带www的情况,写法和上面差不多,就不多说了。
将上面代码复制到记事本,然后重命名为.htaccess,上传到网站的根目录即可。
如果是本地不支持此命名,可以先传到根目录再修改文件名称即可。
二、网页的重定向。
这里也可以分为两种情况。
第1种,只有少量网页需要重定向,方法如下:<Files ~ "^.(htaccess|htpasswd)$">deny from all</Files>Redirect permanent /old.html /new.htmlorder deny,allow第2种,举例网站的导航的一个栏目改了路径时的重定向方法。
原路径为/old/,新路径为/news/的情况如下:<Files ~ "^.(htaccess|htpasswd)$">deny from all</Files>Redirect permanent /old/ /new/order deny,allow同样,写在记事本,改名为.htaccess,同样上传到网站根目录即可。
301重定向请求流程

301重定向请求流程在网站开发过程中,经常会遇到需要更改网站页面的情况。
这时候,我们需要在保证用户访问体验的同时,将旧页面的权重和排名转移到新页面上。
这个过程就是通过301重定向来实现的。
301重定向是一种HTTP协议的状态码,它告诉搜索引擎和用户请求的页面已经移动到了新的URL地址。
这个状态码是永久性重定向,意味着搜索引擎会更新它们的索引,把旧的页面权重和排名转移到新的页面上。
下面是301重定向请求的流程:1. 用户请求访问旧页面当用户在浏览器中输入旧页面的URL地址或通过搜索引擎点击链接访问旧页面时,浏览器会发送一个HTTP请求到服务器。
2. 服务器接收到请求服务器收到用户的请求后,会检查请求的URL是否需要重定向。
如果需要重定向,服务器会发出一个301状态码,告诉浏览器请求的页面已经永久移到了新的URL地址上。
3. 浏览器接收到301状态码当浏览器接收到服务器发出的301状态码时,它会自动向新的URL 地址发送一个新的HTTP请求。
4. 服务器重定向请求到新的URL地址服务器接收到新的HTTP请求后,会将请求重定向到新的URL地址。
这个过程是透明的,用户不会察觉到URL地址已经发生了变化。
5. 浏览器显示新页面内容当服务器将请求重定向到新的URL地址后,浏览器会显示新页面的内容。
用户可以继续访问和浏览页面,而不会感觉到页面发生了变化。
需要注意的是,301重定向是一种永久性重定向,意味着搜索引擎会把旧的页面的权重和排名转移到新的页面上。
如果需要临时性重定向,可以使用302状态码。
总结301重定向是一种对网站进行优化的重要手段。
通过将旧页面的权重和排名转移到新页面上,可以保证网站在搜索引擎中的排名和权重不会受到影响。
在进行网站迁移、更改URL地址等操作时,需要注意对旧页面进行301重定向,确保用户和搜索引擎可以访问到正确的页面。
常见HTTP状态,404错误等等301,201。

常见HTTP状态(304,200等)
在网站建设的实际应用中,容易出现很多小小的失误,就像mysql当初优化不到位,影响整体网站的浏览效果一样,其实,网站的常规http状态码的表现也是一样,Google无法验证网站几种解决办法,提及到由于404状态页面设置不正常,导致了google管理员工具无法验证的情况,当然,影响的不仅仅是这一方面,影响的更是网站的整体浏览效果。
因此,比较清楚详细的了解http状态码的具体含义,对于一个网站站长来说,这是很有必要俱备的网站制作基础条件。
如果某项请求发送到您的服务器要求显示您网站上的某个网页(例如,用户通过浏览器访问您的网页或Googlebot 抓取网页时),服务器将会返回HTTP 状态码响应请求。
此状态码提供关于请求状态的信息,告诉Googlebot 关于您的网站和请求的网页的信息。
一些常见的状态码为:
∙200–服务器成功返回网页
∙404–请求的网页不存在
∙503–服务器超时
下面提供HTTP 状态码的完整列表。
点击链接可了解详情。
您也可以访问HTTP 状态码上的W3C 页获取更多信息。
1xx(临时响应)
表示临时响应并需要请求者继续执行操作的状态码。
5xx(服务器错误)
这些状态码表示服务器在处理请求时发生内部错误。
这些错误可能是服务器本身的错误,而不是请求出错。
伪静态网站的301重定向设置

301重定向百度搜索一下会出来很多内容,但是搜索出来的内容往往不是很全面,大多讲的都是静态301重定向的方法。
那如果是静态网站或者说是伪静态的网站如何做301的重定向设置呢?整理之后,下面给大家一一做一个介绍(下面的方法都是传递百度权重的哦):1、在.htaccess文件中增加301重定向指令(只适用于linux系统,并需要虚拟主机支持。
)RewriteEngine onRewriteCond %{http_host} ^ [NC]RewriteRule ^(.*)$ /$1 [L,R=301]2、绑定/本地DNS,可以通过域名操作后台实现DNS转发让顶级域名转发到一级域名上。
3、适用于使用Unix系统的用户通过此指令通知搜索引擎的spider你的站点文件不在此地址下。
这是较为常用的办法。
形如:Redirect 301 / 4、动态301重定向(注:代码需放入公共文件)asp重定向代码:Response.Status="301 Moved Permanently"Response.AddHeader "Location","/"Response.Endphp重定向代码:header("HTTP/1.1 301 Moved Permanently");header("Location:/");exit()ASP .NET下的301重定向:<script runat=”server”>private void Page_Load(object sender, System.EventArgs e){Response.Status = “301 Moved Permanently”;Response.AddHeader(”Location”,””);}</script>JSP下的301重定向代码:<% response.setStatus(301); response.setHeader( "Location", "http://www.myd /" ); response.setHeader( "Connection", "close" ); %>Apache下301重定向代码:5、静态网站301重定向方法1.新建一个站点,对应目录如E:\wwwroot\301web。
phpstudy环境Apache配置下实现https访问和301重定向

phpStudy 2016环境下安装SSL证书教程题外话:在网站上安装SSL证书,首先你要有这个证书,此教程的用到的私钥server.key,证书server.crt和根证书ca.crt都是自己做的,具体看“000Windows系统下制作公钥私钥ssl 证书.doc”文档。
教程开始:以下都是在:Phpstudy2016 Apache环境下第一种方法(简单,快速,推荐)第一步:【打开phpstudy】》【其他选项菜单】》【PHP扩展】》【php-openssl】前面勾选上。
第二步:【打开phpstudy】》【其他选项菜单】》【站点域名管理】》【站点域名设置】网站域名添127.0.0.1(根据需要设置)第三步:把server.crt ca.crt和server.key三个文件后放到d:/ssl 目录下。
第四步:打开D:/phpStudy/Apache/conf/httpd.conf在最后面添加SSL配置.Listen 443<VirtualHost *:443>DocumentRoot "D:/phpStudy/WWW"ServerName 127.0.0.1ServerAlias 127.0.0.1SSLEngine onSSLCertificateFile "d:/ssl/server.crt"SSLCertificateKeyFile "d:/ssl/server.key"SSLCertificateChainFile "d:/ssl/ca.crt"</VirtualHost>完成以上配置后,重启Apache,没错误的话,就可以用http://或https://开头访问如果此时能够正常启动,则说明添加的配置有错误(是不是重复监听了?证书路径对不对?证书是否有效?),请看错误日志(D:\phpStudy\Apache\logs\error.log),直到能够正常启动apache第五步:http301重定向到https完成第四步,还没有大功告成,因为访问http时还不会自动在网址前加https,怎么办?继续往下看——创建一个文件名为.htaccess的文件放在网站根目录,可以用记事本新建一个空白文件,保存另存为时,在文件类型上选择所有文件就可以了。
301重定向设置

301永久重定向对SEO无任何不好的影响,而且网页A的关键词排名和PR 级别都会传达给网页B,网站更换了域名,表示本网页永久性转移到另一个地址,对于搜索引擎优化|SEO来说,给搜索引擎一个友好的信息,告诉它此页面已永久重定向,避免搜索引擎找不到页面。
什么情况下使用301重定向1:网站更换域名时,通过301永久重定向将旧域名重定向至新域名,挽回流量损失和SEO。
2:当出于需要删除网站中的某些目录时,比如我要删除我博客下的博客导航,这时就可以用301永久重定向到网站首页。
3:如果你有多个闲置域名时需要指向同一网站时,通过301永久重定向可以实现。
4:你打算实现网址规范化。
如何实现网址规范化我重点讲讲这个网址规范化,因为这是大家很容易忽略的问题。
例如我的域名,如果不做任何设置,它默认会产生四个网址:(1)(2)(3)/default.html(4)/default.html如果不做301重定向会导致:你站点主域名的pr值分散到其他几个URL了。
先查询上面4个网址的PR值,如果结果一致,说明网站没有规范化问题;如果不一致,表明有规范化问题。
这时候我们就需要使用301永久定向技术来实现网址的规范化了。
需要注意的是,带www和不带www的两个网址,www其实是个二级域名。
我所知道的常用的301重定向设置方法有2种。
一个是通过IIS界面直接设置,另外一个是通过代码来实现301重定向设置。
卢松松建议用服务器组件来做重定向,我以下例子以我的域名301重定向到 进行讲解。
1:IIS 服务器实现301 重定向打开IIS,右键-属性-网站-IP地址哪里点编辑增加一个站点,增加一个站点,绑定的一下主机头,也可以绑定多个闲置域名。
如图所示:打开IIS,首先新建立一个站点,随便对应一个目录E:\wwwroot\301web。
该目录下只需要2个文件,一个default.html,一个404.htm。
在欲重定向的网页或目录上按右键;选中“重定向到URL”;在对话框中输入目标页面的地址;切记,记得选中“资源的永久重定向”;当然,最后要点击“应用”,完成。
301重定向规则

301重定向规则301重定向是HTTP协议中常见的一种重定向状态码,用于指示被请求的资源已经被永久移动到新的位置。
在实际应用中,301重定向通常用于网站重构、更改网址结构等情况下,帮助引擎和用户更快地找到新的内容。
在设置301重定向规则时,需要考虑到多种情况,确保不会影响网站的用户体验和引擎优化。
###301重定向规则的应用场景1.网站结构调整:当网站进行结构调整或更新时,部分页面可能会被删除或合并,此时需要使用301重定向将旧的页面指向新的位置,以保证用户的访问体验。
2.域名变更:当网站更换域名时,原有域名的所有页面应设置301重定向到新域名,避免用户和引擎无法找到原有内容。
3.页面重命名:当一些页面的URL发生变化时,原有的URL应设置301重定向到新的URL,确保旧链接的权重和排名不会丧失。
4.移动端适配:对于需要进行移动端适配的页面,可以设置301重定向来指向移动版页面,提升移动端用户体验。
5.链接拼写错误:对于用户可能输入的链接拼写错误或打字错误,可以设置301重定向到正确的页面,提升用户体验。
###301重定向规则的设置方法1. 在服务器端设置301重定向:通过服务器端配置文件(如.htaccess文件)或网站控制面板设置301重定向规则,将旧的URL 重定向到新的URL。
2.在网站后台设置301重定向:通过网站后台管理系统或插件,设置301重定向规则,将特定的URL指向新的URL。
3.使用301重定向插件:一些网站搭建平台提供了301重定向插件,通过简单的操作即可实现301重定向功能。
###301重定向规则的最佳实践1.永久性重定向:301重定向是永久性重定向,一旦设置后,引擎会将旧的URL的权重和排名传递给新的URL,因此需要保证新的URL是永久性的。
2.单一目标:每个旧URL应只设置一个301重定向目标,避免设置多个目标导致混乱和错误。
3.不要滥用301重定向:避免频繁使用301重定向,应尽量在不影响用户体验和引擎优化的情况下减少301重定向的使用。
本人亲测成功的301重定向方法

本人亲测成功的301重定向方法
来源:塑料保鲜盒
和很多新入行的搜索引擎优化人员一样,在开始选定域名的时候,会选择两个域名:带
www的/和不带www。
在开始的一个月,做站过程发现带www收录很
少,不带www收录很多,了解之后发现是由于首选域名没有设定好。
导致搜索引擎默认不
带www为首选域。
然后用户习惯认为带www为一级域名。
塑料保鲜盒
从网上找了很多方法,但是都没有成功。
后来发现有一个方法比较好。
1.新建一个记事本文档,把文件名改为httpd.ini。
2.用记事本打开,把结尾的一段代码复制进去。
3 修改【RewriteCond Host: ^snplastic\.com$】一行【snplastic】为你自己的域名
4 修改【RewriteRule (.*) http\://www\.snplastic\.com$1 [I,RP]】一行【snplastic】为你自
己的域名
5 保存关闭【httpd.ini】文件,上传【httpd.ini】文件到你的网站【WEB目录】下面
6 打开网址【/getheader.asp】测试一下返回代码是【301】表示正确
代码:
[ISAPI_Rewrite]
CacheClockRate 3600
RepeatLimit 32
RewriteCond Host: ^snplastic\.com$ 西兰花
RewriteRule (.*) http\://www\.snplastic\.com$1 [I,RP]。
教你如何 301重定向

2、window的虚拟主机IIS的服务器,需要有安装 ISAPI_Rewrite这个组件。(咨询主机商是否支持)如果支持,则先2个域名都解析到同一个IP,然后httpd.ini文件开始处加入以下规则:
代码:
RewriteCond Host: ^XXXXX\.com$
RewriteRule (.*) http\://www\\.com$1 [R,I]
301重定向是什么意思?
在地址栏里输入:域名 可以看到自动跳转到 这样的效果就是301重定向。相反过来也是一样的。
为什么要做301重定向?
一、为了网址URL的标准化
1,我们经常遇到的就是带www的域名和不带www的域名301重定向问题。在未做301重定向之前,无论是用户或搜索引擎蜘蛛,通过这两个网址是都能访问网 站的同一个页面。对于用户可能不太在意,因为无论用哪个网址都能访问。但是对于搜索引擎来说就是2个不同的URL,意味着2个页面的权重就要分别计算了,最终结果就是网站权重的分散。那么从SEO的角度分析,镜像页面的存在危害也很大。
php 301重定向的方法:可以在index.php文件的顶部添加代码<?php$the_host = $_SERVER['HTTP_HOST'];//取得当前域名 $request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';//判断地址后面是否有参数 if($the_host != '')//跳转到指向的地址 { header('HTTP/1.1 301 Moved Permanently');//发出301头部 header('Location: /'.$request_uri);//该指向地址的的格式}?>
使用.htaccess实现301重定向

使用.htaccess实现301重定向301重定向的作用:1.规范网址;2.排除了重复页面;3.增加网址权重首页新建一个空文件.htaccess,填入重定向规则后,上传到网站根目录。
用301将不带WWW的域名重定向主域名:rewriteEngine onrewriteCond %{http_host} ^[NC]rewriteRule ^(.*)$ /$1 [R=301,L]用301将绑定的其他域名重定向到主域名:注意这个地方,有RewiteEnginee on这句,RewriteEngine onRewriteCond %{HTTP_HOST} ^其他域名.com$ [OR]RewriteCond %{HTTP_HOST} ^www.其他域名.com$RewriteRule ^(.*)$ http://www.主域名.com/$1 [R=301,L]旧域名重定向到新域名创建一个.htaccess文件,并将下面提供的代码写入文件内,它可以确保旧域名所有的目录或者网页正确的跳转到新域名内。
记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件如果所有的其它的域名都重定向到一个的话,可以直接如下, 省于RewriteCond语句.用301将index.html、index.php等重定向到主域名:RewriteEngine onRewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/RewriteRule ^index\.php$ / [R=301,L]301转向和网址规范化什么是301转向?301转向(或叫301重定向,301跳转)是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。
其它常见的状态码还包括,200表示一切正常,404网页找不到,302暂时转向,等等。
apache301伪静态规则

apache301伪静态规则摘要:一、Apache 301伪静态规则概述二、实现301重定向的方法1.使用Apache配置文件2.使用.htaccess文件3.使用Nginx服务器三、优点与缺点1.提高SEO效果2.简化URL3.不足之处四、实际应用场景五、注意事项正文:一、Apache 301伪静态规则概述Apache 301伪静态规则是指在网站开发过程中,通过服务器配置将动态URL重定向到静态URL,从而提高网站的SEO效果、简化URL和提高用户体验。
在这种重定向方式中,HTTP状态码301表示永久重定向,告诉搜索引擎和访问者该网页已永久移动到新地址。
二、实现301重定向的方法1.使用Apache配置文件在网站的Apache配置文件中,添加如下代码:```<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ./index.php [L]</IfModule>```2.使用.htaccess文件在网站根目录下创建一个名为.htaccess的文件,添加如下代码:```<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ./index.php [L]</IfModule>```3.使用Nginx服务器在Nginx配置文件中,添加如下代码:```location / {root /var/www/html;index index.php;if ($args = "/") {rewrite /(.*) /$1/index.php;}}```三、优点与缺点1.提高SEO效果:通过将动态URL重定向到静态URL,有助于提高网站在搜索引擎中的排名。
APACHE自定义404错误页面设置方法

APACHE⾃定义404错误页⾯设置⽅法⽅法⼀:在httpd.conf中设置对⽬录开启。
AllowOverride All然后在⽬录⾥放⼀个.htaccess(.htaccess),添加:errorDocument 404 /404.php1.这个的内容根据你的情况改写。
可是有时候当你⽤IE浏览的时候会发现,这玩意压根就不跳转,关键的地⽅就是这个html,如果404.html的⼩于512字节的话,那么IE会认为这个错误页⾯不够“友好”,会忽视掉的!2.必须放置在⽹站根⽬录(www/)中,放置(www/phpcms/)中⽆效!如果web⽬录下有多个项⽬,必须在每个项⽬下都有.htaccess,⾥⾯填上对应的404页⾯就⾏了,注意404页⾯都放在web根⽬录下⽅法⼆:修改 httpd.conf,找到:httpd.conf中的这⼀部分,#ErrorDocument 404 /missing.html 是显⽰错误页信息的,去掉前⾯的#,修改为:ErrorDocument 404 /404.php(2)⾃定义url后台发布商品或信息的时增加⼀个字段⽤来保存url地址。
(3)超链接直接链接到⾃定义的url(4)设置404页⾯因为⾃定义的超链接是不存在的,系统会⾃动跳到404.php页⾯,然后利⽤php代码获取地址栏访问路径这种⽅法设置了默认的404页⾯,如果⽬录下有多个项⽬可以给每个项⽬单独配置404页⾯,参考⽅法⼀。
apache服务器开启rewrite模式总结解决404错误通过⽐对本地wampserver的配置⽂件和服务器上的apache配置⽂件,解决了404错误1:进⼊apache⽬录的conf⽬录2:打开httpd.conf3:找到#LoadModule rewrite_module modules/mod_rewrite.so然后把前⾯的#去掉4:找到所有的AllowOverride配置项,把所有的None都修改为All5:在⽹站根⽬录下⾯新建⼀个 .htaccess ⽂件(什么?这个⽂件不会添加?先新建⼀个txt,然后另存为 .htaccess⽂件就⾏),输⼊⼀下内容<IfModule mod_rewrite.c>RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]</IfModule>6:重启apache。
使用.htaccess自訂“404找不到網頁”的頁面

使用.htaccess自訂“404找不到網頁”的頁面
使用 .htaccess 自訂“404 找不到網頁” 的頁面
View comments / Print This Post
一般我們租用的虛擬主機無法讓我們修改httpd.conf,所以只能透過使用 .htaccess 來自訂“404 找不到網頁” 的頁面。
首先確認你的網頁伺服器是Apache,沒問題的話,編輯網頁根目錄下的“.htaccess”,加入:
<IfModule mod_rewrite.c>
RewriteEngine On
ErrorDocument 404 /error404.html
</IfModule>
如此即可將 404 的頁面導到“/error404.html” 這個網頁來執行。
接著將你自已設計的error404.html 直接放在網頁根目錄,這樣就完成了。
另外,這裡有一些很有創意的 404 Error Page。
相關的網頁錯誤代碼主要有:
•400: Bad request
•401: Authorization required
•403: Forbidden
•404: Worng page
•500: Internal server error
參考網址
1.404 Error Pages
2.W anted: Your 404 Error Pages
3.A rea 404
4.H TTP 回應的代碼含義
5.改變網址而不會出現「404 找不到網頁」:301 Redirect 與 .htaccess。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Apache下htaccess使用技巧:301重定向、404错误等
换域名了,以前域名的收录怎么办?老域名的权重如何转移到新域名呢?百度搜索引擎优化手册里面说的是使用301永久重定向,那么如何灵活应用301重定向呢?下面就说说apache服务器下使用htaccess来实现301永久重定向的方法。
你是同一目录下的网站,还是不同目录下的网站,如果是同一目录下的网站,就必需要地址判断,以免出现“此网页包含重定向循环”;如何是不同目录下的网站,就可以直接弄转向,也就是所有来路域名都转;如果两域名在同一目录,请把伪静态规则放在 301的下面,即先转,再伪。
一、301 永久重定向:
1、所有链接重定向首页:可新建一个 index.php (两站不同目录)
1. <?php
2. header('Location:');
3. ?>
2、只首页重定向,贴子等都不重定向、不变:
1. RewriteEngine on
2. RewriteCond %{HTTP_HOST} ^$ [OR]
3. RewriteCond %{HTTP_HOST} ^$
4. RewriteRule ^/?$ "http\:\/\/www\.ptuso\.com" [R=301,L]
注:只首页重定向,内页、目录不重定向,访问还是原地址。
[OR] 是“或” 也就是使用带WWW和不带WWW的都转,应该可以加很多 [OR] 做条件。
如bbs子域名转 bbs目录转。
注意, [OR]条件判断,如果只一个条件,请把 [OR] 去掉。
不然有可能出现:“此网页包含重定向循环”
(以上为两站同一目录下使用,如果网站不同目录,就不需要网址判断,直接使用最下一行)
注意:以上规则中:
^ 表示:是
!^ 表示:不是
[NC] 为不管大小写。
2、首页、贴子、目录都重定向 的首页、或指定页:
1. RewriteEngine on
2. RewriteCond %{HTTP_HOST} ^$ [OR]
3. RewriteCond %{HTTP_HOST} ^$
4. RewriteRule ^(.*)$ [R=301,L]
注:首页、内页、目录都重定向到的首页。
(以上为两站同一目录下使用,如果网站不同目录,就不需要网址判断,直接使用最下一行)
3、www域名转根域名 301。
这个是最常用的,首页、贴子、目录,所有的都同步重定向:
1. RewriteEngine on
2. RewriteCond %{HTTP_HOST} ^$ [NC]
3. RewriteRule ^(.*)$ "/$1" [R=301,L]
注:首页、内页、链接将都重定向到另一站的相同链接。
(以上为两站同一目录下使用,如果网站不同目录,就不需要网址判断,直接使用最下一行)
4、A域名转B域名,首页、贴子、目录,所有的都同步重定向:
1. RewriteEngine on
2. RewriteCond %{HTTP_HOST} ^$ [OR]
3. RewriteCond %{HTTP_HOST} ^$
4. RewriteRule ^(.*)$ "/$1" [R=301,L]
注:首页、内页、链接将都转向到另一站的相同链接。
(以上为两站同一目录下使用,如果网站不同目录,就不需要网址判断,直接使用最下一行)
5、如果只子目录重定向,包括目录下的所有链接,其它的不重定向:
如:要把 /bbs 下重定向到 来,但不重定向。
(以上为两站同一目录下使用,如果网站不同目录,就不需要网址判断,直接使用最
下一行)
(这个子目录转,判断语可不用,直接使用最后一行,子目录下的所有来路都转) 301转向,这个你就自己总结1、2、3、4,灵活应用吧!
----------------------------------------------------------------
以上为301把贴子、地址都重定向到新地址。
如果不需要贴子地址都重定向,只把域名重定向,那么,你只需用一首页文件index.php
内容为:(网址换成你要重定向到目标网址)
1. <?php
2. $url="".$_SERVER["REQUEST_URI"];
3. header("HTTP/1.1 301 Moved Permanently");
4. header("location:");
5. ?>
这方法为域名直接跳转,如需跳转到子目录,直接在网址加上子目录即可。
(两站不同目录)
htaccess技巧在 Linux 系统,支持 htaccess 规则下使用。
注:301转向.htaccess 的规则在 Linux 系统 Apache 上测试通过,但是在 Linux 系统 LiteSpeed 上出现 500错误等。
或许不兼容。
二、建一个404.htm 文件传根目录
自动义 404、403 错误,在.htaccess里面添加
1. ErrorDocument 404 /404.htm
2. ErrorDocument 403 /404.htm
注:可自己设定无法找到文件转到哪个页后面的404.htm 可自行改。
三、.htaccess 设置默认首页:
DirectoryIndex index.html index.php default.htm
注:有些空间,默认首页先后不同,自己想要把哪个先访问,可用此设置
四、.htaccess 禁止IP访问网站:
1. Order Allow,Deny
2. Deny from 582.46.2.67
3. Allow from all
注:禁止 582.46.2.67 这个IP访问你的站点,可自己测试下禁止自己IP。
可应该在,如遇到服务器攻击,查出这个IP,禁止这个IP访问。
五、.htaccess 禁止图片、文件盗链:
1. RewriteCond %{HTTP_REFERER} !^$ [NC]
2. RewriteCond %{HTTP_REFERER} ! [NC]
3. RewriteRule \.(gif|jpg|rar|zip)$ /logo.gif [R,L]。