对于一个不懂程序的seoer来做,更改代码方面是一件非常苦难的事情,当我们遇到301转向以及404页面的制作问题时,经常会困恼我们,这里我提供一个htaccess在线生成工具,这里有404页面链接生成、301转向生成以及htaccess常规设置问题,下面来说一下具体的说明以及使用方法。
htaccess是什么文件
htaccess文件是apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
一般来说,htaccess文件需要放在网站的根目录下才能控制整个站点,并且在linux系统中,需要把其权限设置为644以提高安全性。国内很多主机提供商都通过一定技术手段禁用了该文件,但是国外大多数空间商都是支持该文件的,可以极大的扩展虚拟主机的功能
.htaccess文件中的配置指令作用于.htaccess文件所在的目录及其所有子目录,但是很重要的、需要注意的是,其上级目录也可能会有.htaccess文件,而指令是按查找顺序依次生效的,所以一个特定目录下的.htaccess文件中的指令可能会覆盖其上级目录中的.htaccess文件中的指令,即子目录中的指令会覆盖父目录或者主配置文件中的指令。
在实际应用中,用户最常用其重定向功能与伪静态功能,比如把一个php的动态页面定义成一个html后缀的静态页面url形式,这种形式在用户端完全无法看出来,因此,伪静态也是seo的一种重要手段。常见的程序比如phpwind、dedecms、wordpress等都支持自动伪静态。
本文件应该由utf-8编码,或者不添加bom的windows编码也可以。因此,不能使用windows系统自带的记事本程序来编写htaccess文件,常见的notepad2等软件可以用来编写该文件。
如果手头没有编辑工具或者不方便下载,可以通过本站的“.htaccess制作生成编辑器”来自动处理这个文件。我们已经完全修正了这套程序中原来存在的很多错误,并且增加了很多使用的功能(比如直接下载),您可以放心使用。但由于服务器系统的不确定性,我们强烈建议您在上传之前,将原来的文件备份。本站不可能因使用这套程序造成的损失承担任何责任。
通过htaccess实现301重定向
在很多情况下,网站都需要进行301或302重定向,其中一个为永久重定向,一个为临时重定向。比如网站整个更换了域名,比如网站结构或目录发生了移动,比如需要将某个域名上的文件迁移到另外的域上等等。
有时候这种重定向对seo或者pr值的传递是非常有效的。一般我们有几种途径制作一个htaccess文件,比如自己手动编辑,好处是非常灵活、功能强大,但坏处是很容易出错,我们强烈建议用本站的工具自动生成这个文件;另一种途径是通过空间里的控制面板进行自动编辑,这种方法比较死板,但不会因为人为原因出错,除非设置错了。
比如cpanel控制面板中,在domain>redirects里面,直接选择相应的选项即可。下面我们来详细讨论一下如何手动编辑这个htaccess文件:
务必注意:在编辑之前请备份原来的htaccess文件,以免造成损失。
1、出于seo考虑,将kuphp.net重定向至www.kuphp.net。本站就使用了这种重定向的方法避免页面权重分散。
一旦选择了带www的为主域名,今后就不要随意更改,方法如下:
rewriteengine on rewritecond %{http_host} !^www.kuphp.net$ [nc]
rewriterule ^(.*)$ http://www.ssffx.com/$1 [l,r=301]
上面这一句话是从反面来写的:如果域名不是带www的,就统一301跳转到带www的域名中去
2、如果需要将域名从www.kuphp.net跳转到kuphp.net,则可以使用一下代码:
rewriteengine on rewritecond %{http_host} !^kuphp.net$ [nc]
rewriterule ^(.*)$ http://www.ssffx.com/$1 [l,r=301]
3、如果需要变更域名,即将老域名换成全新的域名,但是网页内容与结构不变,则可以使用以下代码来实现:
rewriteengine on
rewritebase / rewritecond %{http_host} !ssffx.com$ [nc]
rewriterule ^(.*)$ http://www.ssffx.com/$1 [l,r=301]
如果是带www的域名间跳转,则以此类推,在域名前加上www即可。
一般来说,以上这些是网站建设过程中非常常用的几行代码。这些代码对google非常适用,google很快就会按照你的意愿将收录的网址改变过来,并且如果换了域名,还能保留以前域名的pr值。
htaccess 404错误页面的自定义
估计所有类型的页面里,404错误页面是见得最多的一个页面了,冷不防出现个冰冷的404,用户体验非常差,也会给seo带来不好的影响。一个好的404错误页面不仅可以引导用户至正确的页面,也会给人一种赏心悦目的感觉。另外,也可以通过301重定向来更好的解决该页无法找到的问题。
如果网站建立不久,就出现了什么改版、换程序等等,会在搜索引擎中产生大量的无效页面,如果不及时处理,很可能使你的站在搜索引擎中降低地位。众所周知,在windows iis里面,可以直接通过管理工具自定义错误文档,但这在apache下如何实现呢?如果你用的是虚拟主机,无法自己定义,又该如何实现呢?
这个问题难不倒万能的htaccess,通过htaccess定义404错误可谓是小菜一碟,并且其它的错误类别也可以依葫芦画瓢。
一般来说,有两种方法可以自己定义404错误页面,一种是通过空间控制面板,这种方法简单易行;另一种是自己建立htaccess文件,写入定义:
errordocument 404 http://www.ssffx.com/404.html
该行代码即定义404错误为404.html这个页面。其中404为错误代码,后面的网址为出现错误时需要返回的页面。我们非常建议使用完整地址,这样会减少出错的几率。另外,还有很多常用的其它错误代码也可以自己定义,如:
400 – bad request 错误的请求
401 – authorization required 需要认证
403 – forbidden directory 禁止访问
404 – page not found 无法找到该页
500 – internal server error 内部服务器错误
按照以上的格式添加进去即可。如果按照以上方法出现错误,可能是文件保存编码的问题。因此,我们建议您使用我们的工具来替您全自动完成这项工作,或者使用notepad2来编写该htaccess文件。
htaccess 伪静态的规则
利用htaccess文件可以很好的进行站点伪静态,并且形成的目标地址与真正的静态页面几乎一模一样,如abc.html等,伪静态可以非常好的结合seo来提高站点的排名,并且也能给人一种稳定的印象。
由于伪静态必须要完全根据不同的站点进行不同的设置,因此,我们仅能简单介绍其原理,给出几个常用程序的示例:
若要通过htaccess使用伪静态,则必须空间商支持rewrite模块,该模块负责url的重写。否则即便是设置好了,也无法使用,并且还有可能出现500错误。
下面是discuz的伪静态设置文本:
# 将 rewriteengine 模式打开
rewriteengine on
# rewrite 系统规则请勿修改
rewriterule ^archiver/((fid|tid)-[0-9] \.html)$ archiver/index.php?$1
rewriterule ^forum-([0-9] )-([0-9] )\.html$ forumdisplay.php?fid=$1&page=$2
rewriterule ^thread-([0-9] )-([0-9] )-([0-9] )\.html$ viewthread.php?tid=$1&extra=page\=$3&page=$2
rewriterule ^space-(username|uid)-(. )\.html$ space.php?$1=$2
rewriterule ^tag-(. )\.html$ tag.php?name=$1
以下是phpwind的伪静态设置文本:
rewriteengine on rewritebase / rewriterule ^(.*)-htm-(.*)$ $1.php?$2
rewriterule ^(.*)simple/([a-z0-9\_] \.html)$ $1/simple/index.php?$2
此外,还有很多种不同的规则,如果想制定出适用于自己站点的伪静态规则,必须熟悉网站结构和正则表达式。